Pull to refresh

Comments 15

На Хабре не спроста используется Sphinx. Под какими нагрузками тестировался скрипт?

>К тому же, если говорить о системе тегов, то необходимость в ней полностью отпадает. Но это скорее дело вкуса.

Результат выдачи по тегам, как правило кэшируется, т.е. не нужно каждый раз трогать базу данных.

Я для поиска использую Zend_Lucene, который использует индексы, вместо базы данных.

Какой размер будет иметь база данных для порталов, с огромным количеством информации? MySql тогда не потянет это все)
а какой размер имеет ваш индекс Lucene??

Хочу заметить что поиск на Хабре работает отвратительно.
А я считаю, в CMS, ориентированной на массовое использование, должно быть решение для поиска вроде этого. Ведь очень часто на shared hosting нет возможности использовать Sphinx, а встроенный поиск от Google/Яндекс — не вариант для закрытых или плохо индексирующихся сайтов.
в таких случаях гораздо выгоднее пользоваться Zend_Lucene
Да, выгодней) Поэтому я и использую Zend_Lucene. Вначале были трудности с поиском по кириличному тексту, но разобрался и теперь все нормально.
Но есть одно но.
Zend_Lucene довольно медленный. Как при индексации так и при поиске.
При поиске по чуть более, чем 200000 позиций время запроса примерно 0.2-0.3 сек.
А Sphinx с этой-же задачей справляется за 0.008-0.016 сек.
+ Zend_Lucene индексировал эти позиции около 30-ти минут, а Sphinx за 2 сек все сделал.
Это мои личные наблюдения на конкретной задаче.
Да, на счет времени индексации Zend_Lucene Вы правы, это немного огорчает. На одном достаточно популярном огромном форуме, не припомню сейчас названия, преиндексация проводится каждые несколько минут с помощью Sphinx-а, с такими задачами Zend_Lucene, конечно, не справиться.
Sphinx вам в помощь.

а как же морфология, раз уж делать крутой поиск?
Для создания полноценного поиска еще далеко, нужно еще учесть морфологические формы слов, нужно отсортировать результаты поиска по релевантности, сделать хотя-бы минимальную коррекцию ошибок пользователя, в идеале — сделать возможным поиск с использованием AND / OR, точной фразы и т.д. проще уже действительно Sphinx использовать или API поисковиков.
Вы про связь многие-ко-многим не слышали?
В таблицах связи многие ко многим Primary key отдельным полем не ставится.
Почему idname и idtext не foreign key?
Где ключ Unique(idname, idtext)
когда передо мной встала похожая задача в проекте на постгресе, мне оказалось достаточно почитать мануал по написанному в МГУ (гордость!) и включенного в поставку модуля полнотекстового поиска. Очень удобная штука, хотя и не без минусов. С тех пор постгрес я просто обожаю (может, я просто не знаю об аналогах для MySQL?)

Если кому интересно — напишу потом туториал о том, как за день можно сделать персональный гугл для сайта :)
вы открыли для себя смысл полнотекстового поиска(но только его одну малую часть)
а как же методы оптимизации?
а как же релевантность?
а исключение ошибок?
>солце (см скрин)
про какую эффективность в заголовке вы хотели сказать?
И ещё совсем неплохо бы морфологический анализ именть.
Было бы чудесно добавить в такую статью еще примеры кода, а с морфологическим анализом — вообще шоколадно
Sign up to leave a comment.

Articles