#performance #search #sphinx
#Производительность #Поиск #sphinx
Вопрос:
Мне нужно использовать поиск в sphinx с отрицательными словами, но если я использую отрицательные слова, скорость поиска падает. Если поиск без отрицательных слов работает хорошо. Что я могу сделать, чтобы настроить sphinx для поиска с отрицательными словами? Мне нужен быстрый поиск. пример запроса:
«кошка -собака -животное» — медленный запрос
«cat» — быстрый запрос
Чем больше отрицательных слов, тем медленнее поиск. версия sphinx 2.2.11, config:
searchd
{
dist_threads = 2
listen = 9312
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
max_matches = 1000000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = /var/lib/sphinxsearch/data
}
Ответ №1:
Не уверен, что есть какая-либо опция magic config, которая может ускорить это как таковое.
Запрос можно задать, только найдя все документы «cat». Затем перебираем каждую из dog и animal и удаляем их. Это требует времени.
Может быть, сегментирование поможет https://www.google.com/search ?q = sphinx поиск шард … он разбивает запрос на части, поэтому его можно «распараллелить»