Форум Рідного Міста

Організація пошуку на сайті

Олександр Колесников - 9-7-2008 у 13:00

Всім привіт!

До недавна для організації пошуку на сайтах використовував MySQL з текстовими индексами. (Здається так само реалізовано пошук на цьому форумі) Цей спосіб має свої недоліки і обмеження.

Що робити коли база містить кілька мільйонів записів (сотні мегабайт текстової інформації), а ми хочемо щоб на звичайному сервері пошук тривав не більше 1/10 секунди? Розрізнялися словоформи (морфологія)? Мати вплив на релевантність результатів пошуку?

Здається є відповідь:)

Sphinx

Мої перші тести.
База 500тис. продуктів.

Вхідна інформація - продукти

  1. ИД продукту
  2. ИД категорії
  3. Назва продукту
  4. Скорочений опис


При індексації сфінкс зчитує всі ці дані з mySQL і створює власний індекс. Більше до mySQL не звертається.
Індексація на звичайному П4 сервері пройшла за 33 секунди. це 15тис. записів на секунду.

Індекс тримається вес час в пам'яті (в моему випадку 45МБ з доступних 2ГБ).

Пошук відбувається всередньому 0,003сек.
Релевантність результатів задовільна.
Морфологія працює для російської і англійської мови.

Як підключити українську ще не розібрався.
Запрошую зацікавлених приєднатись і спробувати підключити українську мову.