Я использую поисковую систему sphinx и php. В моей таблице SQL у меня есть что-то вроде этого. mother keyboard, india pakistan, stakoverflow god
, Теперь, когда я запускаю индексатор над ним. Он индексирует «мать и клавиатура» как разные слова. Я хочу, чтобы их искали как одну фразу. Я хочу это: он не будет искать, если только mother
приходит или только father
приходит. Я буду искать только если mother keyboard
приходит или keyboard mother
приходит.
заранее спасибо
Вы можете попытаться найти точную фразу (что потребует, чтобы вы включили index_exact_words).
Итак, с помощью SphinxQL:
SELECT * FROM index WHERE MATCH('="mother keyboard" | ="keyboard mother"');
Или оператор NEAR может помочь:
SELECT * FROM index WHERE MATCH('mother NEAR/1 keyboard');
Документация Sphinx гласит, что NEAR будет «соответствовать документу, когда оба подвыражения найдены в N словах друг друга, независимо от того, в каком порядке».
Вы можете прочитать больше о расширенном синтаксисе запроса Вот
Других решений пока нет …