Что выбрать? (Sphinx, ...) [Поисковая машина]

TF-Studio
На сайте с 17.08.2010
Offline
334
3221

Есть (планируется) большая база текстов. крайне большая.

Раньше (очень давно) использовал Sphinx для полноценного морфологического поиска.

На что сейчас стоит обратить внимание.

В частности важный момент, чтобы база постоянно растет (идет парсинг постоянный свежих данных) и перестраивать кеш может быть затратным по времени занятием.

То есть:

имеется сервис, который сканирует(парсит сайты) данных в больших объемах.

Нужно осуществлять быстрый поиск по всей базе (Много-Много документов, данных, Гб) с учетом морфологии. с учетом постоянно поступающей (обработанной пауком) информации.

Или у сфинкса уже можно как-то быстро доделать индекс свежих записей?

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
ДП
На сайте с 23.11.2009
Offline
203
#1

Пару лет назад часто встречал статьи по ElasticSearch/Lucene в качестве поискового движка. Но на практике дела с ним не имел, поэтому на ваши вопросы ответить не могу.

Еще какой-то solr есть http://solr-vs-elasticsearch.com/

TF-Studio
На сайте с 17.08.2010
Offline
334
#2

все эти 3 технологии смотрел.

сфинкс - старый и надежный + оч мало весит.

G2
На сайте с 27.10.2009
Offline
62
#3

Они примерно равнозначны. Solar (на секундочку, Apache Solar) - не менее старая и надежная система. Elastic — намного более молодой и активный в развитии, имеет разные плюшки вроде встроенных геозапросов, вероятно для других доменов тоже что-то особенное есть.

Вживую общался с эластиком, чуть меньше года назад: документация могла бы быть и получше, библиотека для PHP урезана и имеет (имела?) баги, статей и примеров тоже не хватает. Это о наболевшем с геозапросами - с текстом серьезных затыков не было, но мы и делали соцсеть, ничего серьезного там не искалось.

Если есть положительный опыт со сфинксом, я бы не стал менять и поискал решение для индексации. Если были шероховатости - я бы пробовал эластик,

КакМаршрутник (http://goo.gl/forms/hMgaH0s9E5) — как маршрутник, но работает.
D
На сайте с 14.01.2007
Offline
153
#4

много работаем с elasticsearch. правда сами индексируемые поля не такие большие( до 200 символов). настроить можно всё что угодно. простейший способ морфологического поиска - ngram либо fuzziness.

fuzziness - поиск с "ашипками"

ngram - разбивает слово на блоки по n-символов и ищет по базе где встречается наибольшее кол-во блоков

ghost28:
библиотека для PHP урезана и имеет (имела?) баги

а зачем там библиотека, если язык запросов эластика - это json?

TF-Studio
На сайте с 17.08.2010
Offline
334
#5

я блоговый поиск буду делать.

потому объем данных оч большой.

выбор технологий критичен

D
На сайте с 14.01.2007
Offline
153
#6

TF-Studio, прямо сейчас 100 М документов в индексе. общий объём данных 30 ГБ. среднее время запроса 30 мс на этом сервере

bbon
На сайте с 01.04.2006
Offline
127
#7
TF-Studio:
Или у сфинкса уже можно как-то быстро доделать индекс свежих записей?

Да. У сфинкса есть дельта-индекс, и его merge с основным индексом на миллион статей занимает порядка минуты на нормальном серваке. Тем более, во время мержа основной индекс остается доступен для запросов.

TF-Studio
На сайте с 17.08.2010
Offline
334
#8
Dinozavr:
TF-Studio, прямо сейчас 100 М документов в индексе. общий объём данных 30 ГБ. среднее время запроса 30 мс на этом сервере

128 GB DDR4 ECC RAM - для чего используются?

или в случае сфинкса на что обратить внимание*?

именно на таких же схожих объемах.

D
На сайте с 14.01.2007
Offline
153
#9
TF-Studio:
128 GB DDR4 ECC RAM - для чего используются?

тут я точно сказать не могу, потому что на том же сервере сейчас 3 примерно одинаковых индекса, из которых только 1 используется. htop показывает ~40 ГБ свободного RAM. запросов в среднем 30 в секунду, в пиках до 200

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий