Подстановочный знак (*) Поиск с мыслящим сфинксом

Можно ли ставить звездочку () между поисковым текстом. Пример => peo le


person user388097    schedule 14.07.2010    source источник


Ответы (2)


Параметр enable_star разрешает сопоставление префиксов ('foo *') и сопоставление инфиксов ('* foo *'). Однако это не позволяет вам вставлять * в середине слова, когда задается вопрос. Лучшее простое решение, которое я могу предложить для описанного случая, - это поиск двух слов с соответствием "любое":

IndexedThingie.search('peo le', :match_mode => :any)

Если вам специально требуется соответствие стилей «все» для всего остального, вам следует изучить синтаксис сопоставления выражений в руководстве по Sphinx (http://sphinxsearch.com/docs/2.0.1/extended-syntax.html), которое доступно если вы укажете «расширенный» режим сопоставления (см. документацию по режиму сопоставления TS: http://freelancing-god.github.com/ts/en/searching.html#matchmodes). Это может быть сложно, но после некоторых манипуляций с вводом для поиска вы сможете справиться с этим. В частности, обратите внимание на оператор «строгого порядка», «‹<».

IndexedThingie.search('peo << le', :match_mode => :extended)
person MrTheWalrus    schedule 06.09.2011

да. enable_star: 1 или enable_star: true в вашем sphinx.yml.

person skalee    schedule 06.08.2010