SphinxQL — как сопоставлять слова в одной строке

У меня есть следующие и несколько других проиндексированных строк. Все слова склеены.

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

Это фраза из википедии.

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

Я использую SphinxQL для поиска нескольких слов. Например.

SELECT * FROM sentences WHERE MATCH('piece rope bind');

В результате это должно вернуть приведенную выше строку, но возвращает 0 строк.

Как должен выглядеть запрос, чтобы не искать слова, а просто сопоставлять слова в строке?

Я уже играл с такими опциями ранкера, как

SELECT * FROM sentences WHERE MATCH('piece rope bind') OPTION ranker=matchany';

но безуспешно.

Любая помощь высоко ценится!


person Aley    schedule 14.02.2013    source источник


Ответы (1)


Используйте min_infix_len, чтобы включить поиск по инфиксу http://sphinxsearch.com/docs/current.html#conf-min-infix-len

Вы, вероятно, хотите enable_star = 0

Или, может быть, вы могли бы использовать WordBreaker, чтобы заново разбить длинную строку перед индексированием :) http://sphinxsearch.com/blog/2013/01/29/a-new-tool-in-the-trunk-wordbreaker/

person barryhunter    schedule 14.02.2013
comment
Спасибо за Ваш ответ. Инструмент разбиения слов интересен, но пока недоступен. Сейчас попробую вариант min_infix_len. Установка enable_star = 0 отключит опцию *, но как это должно помочь? - person Aley; 14.02.2013
comment
Wordbreaker доступен, я сам использовал его. Вы просто берете его из svn code.google.com/p/sphinxsearch/source/checkout< /а> - person barryhunter; 14.02.2013
comment
Спасибо! Однако есть одна вещь. Почему я хочу «enable_star = 0»? - person Aley; 14.02.2013
comment
если вы установите enable_star = 1, вам нужно будет добавить звездочки в запрос, чтобы они соответствовали словам части. - person barryhunter; 14.02.2013
comment
Понимаю. Большое спасибо за Вашу помощь! - person Aley; 15.02.2013