Почему sphinx долго выполняет запрос «c c c c c c»?
Всем привет есть запрос состоящий из одинарных русских букв, например "с с с с с с". Если вставить одну букву, например "с", то запрос выполняется быстро. Поиск из двух и более букв выполняется дольше секунды. Если выполнить show meta то видно что каждое добавление буквы увеличивает docs кратно количеству букв. Документов в индексе около 130к.
Как сделать так чтобы поиск был быстрым вне зависимости от количества букв?
Препроцессингом - вы по факту просите искать несколько раз один и тот же keyword. Если я правильно понимаю sphinxsearch.com/docs/current/sphinxql-show-meta.html то Sphinx де-факто выполняет независимый поиск по каждому переданному ему ключевому слову. Значит, надо сделать так, чтобы в поисковый движок попадал запрос, не содержащий дубликатов ключевых слов. Как - не скажу, к сожалению.
Нашел параметр expansion_limit выставил на 40. Сейчас поиск отрабатывает быстрее значительно. Также добавили фильтрацию по средней длине слова, если в запросе средняя длина слова меньше определенного значения, то выдаём ошибку что запрос не корректный (сейчас пока значение 2). Также есть ограничение по количеству слов в запросе.