Рост
Модератор
Повідомлень: 3710
Зареєстрований: 3-4-2003
Місто: Львів
Нема на форумі
Настрій: є
|
|
Виділення ключових слів (сайтобудування)
Є така собі проблемка.
Аналітичний сайт. Статті. Глосарій. Є потреба виділяти слова з глосарію в статтях
у вигляді посилань на той же глосарій. Тобто, виводиться стаття, є слово, що
міститься в глосарію - воно перетворюється на посилання.
Так от, щодо реалізації. Добре, якщо глосарій маленький. Тоді при виводі скрипт
прокрутить саттю по всіх ключових словах, автоматично виділивши потрібні,
вірніше, перетворивши їх на посилання. А якщо глосарій розростеться?
Прокручувати заміну слів статті одноразово, перед публікуванням - тоді не
враховується поповнення глосарію.
Може хтось підкаже якийсь вихід, що і враховуватиме поповнення глосарію, і не
з`їдатиме ресурси сервера та не гальмуватиме вивід статей?
|
|
Олексій Мачехін
Модератор
Повідомлень: 4597
Зареєстрований: 31-5-2003
Місто: Київ
Нема на форумі
Настрій: теплий
|
|
Як на мене - або "переформатування" всіх статей після поповнення глосарію
(скажімо, в момент найменьшого завантаження серверу серед ночі раз на добу за
умови поновлення, або за кожного поновлення, власне, порте треба уважно
поставитись аби слова не підмінялись при кожному переформатуванні вдруге і
втретє), або оптимізація функції підстановки і робити на льоту.
|
|
marco
Академік
Повідомлень: 752
Зареєстрований: 3-2-2003
Місто: Львів, центр
Нема на форумі
Настрій: стабільний
|
|
Це залежить від інтенсивності наповнення словника та інтенсивності відвідування
сайту.
У будь-якому випадку робити заміну "на льоту" нераціонально. Я так розумію що
з часом і словник буде розширюватись і кількість статей збільшуватись. Тому краще
видавати закешовані сторінки з згенерованими лінками.
Якщо словник поповнюється часто (декілька- десятки слів за день) - то тоді краще це
робити перегенерацію статтей раз на добу вночі запускаючи з кронтабу.
Якщо не часто (декілька-десятки за тиждень) то тоді можна при потребі вручну
очищати кеш і запускати перегенерацію.
|
|
Тарас Сокальський
Почесний Академік
Повідомлень: 1156
Зареєстрований: 25-4-2003
Місто: Чернівці
Нема на форумі
Настрій: Бойовий
|
|
Якщо тема ще актуальна, впхаю своїх 5 копійок.
1. Статті із згенерованими лінками тримаємо в кешах.
2. Ведемо хроніку поповнення/вилучення слів в глосарії.
Кожну подію нумеруємо. Номер = версія глосарію.
3. Тримаємо базу, в якій для кожної статті з кешу
зазначується версія глосарію, під яку вона (стаття)
проіндексована.
4. Оновлення лінків здійснюємо після кожної події п.2
в режимі найнижчого пріорітету. При цьому не перепорпуємо
весь глосарій, а лише враховуємо ті події, які відбулися
після попереднього оновлення, тобто з номерами, більшими
від вказаних в базі(п.3). Після чого, певна річ, коректуємо
версії статей.
5. При зверненнях до закешованих статей звіряємо версії
статті і глосарію, при невідповідності на льоту в алярмовому
порядку доставлюємо лінки на нові слова (не забувши результат
покласти в кеш і підправити версію статті).
6. І, звичайно, додаючи нову статтю, перетрясаємо весь
глосарій і записуємо в кеш статтю із згенерованими лінками.
Хоча цього робити не конче, можна вписати в кеш статтю без
лінків і з нульовою версією глосарію, тоді лінки вставляться
автоматично при першому зверненні до статті(див п.5) або при
наступному поповненні глосарію. Але в першому випадку буде
затримка.
7. Про всяк випадок передбачити перед вставлянням лінку в
статтю перевірку, чи він там вже не стоїть (це може бути в
разі збою при корекції версії статті). Найпростіше перескакувати
слова, які вже є лінками.
Таке от моє чайницьке уявлення, як мінімізувати завантаження
сервера і прискорити обробку запитів.
О, а як бути з розпізнаванням різних відмінкових форм
слів? Певно, треба до кожної статті глосарію додавати
парадигму слова і вишукувати в тексті всі варіанти. Тобто,
роботи при генеруванні лінків додається, і питання оптимізації
постає в усій красі.
|
|
|