Олександр Колесников - 9-7-2008 у 13:00
Всім привіт!
До недавна для організації пошуку на сайтах використовував MySQL з текстовими
индексами. (Здається так само реалізовано пошук на цьому форумі) Цей спосіб має
свої недоліки і обмеження.
Що робити коли база містить кілька мільйонів записів (сотні мегабайт текстової
інформації), а ми хочемо щоб на звичайному сервері пошук тривав не більше 1/10
секунди? Розрізнялися словоформи (морфологія)? Мати вплив на релевантність
результатів пошуку?
Здається є відповідь
Sphinx
Мої перші тести.
База 500тис. продуктів.
Вхідна інформація - продукти
ИД продукту
ИД категорії
Назва продукту
Скорочений опис
При індексації сфінкс зчитує всі ці дані з mySQL і створює власний індекс. Більше до
mySQL не звертається.
Індексація на звичайному П4 сервері пройшла за 33 секунди. це 15тис. записів на
секунду.
Індекс тримається вес час в пам'яті (в моему випадку 45МБ з доступних 2ГБ).
Пошук відбувається всередньому 0,003сек.
Релевантність результатів задовільна.
Морфологія працює для російської і англійської мови.
Як підключити українську ще не розібрався.
Запрошую зацікавлених приєднатись і спробувати підключити українську мову.