Как в sphinx сделать 'like' условие?

Пользователь

от kurt , в категории: Другие , год назад

Как в sphinx сделать 'like' условие?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kyleigh_runte , год назад

@kurt 

В Sphinx, для реализации условия "like" можно использовать оператор "*", который обозначает поиск строки со словами, начинающимися с указанной последовательности.


Например, для поиска документов, содержащих слова, начинающиеся с "sphinx", можно использовать следующий запрос:

1
SELECT * FROM index_name WHERE field_name LIKE 'sphinx*'


Обратите внимание, что Sphinx поддерживает только поиск по началу слова, и не поддерживает поиск по произвольным фрагментам слов.

Пользователь

от caterina , 8 месяцев назад

@kurt 

Кроме использования оператора "*", Sphinx также поддерживает специальные символы, позволяющие расширить возможности поиска "like":

  • "%" - представляет собой любое количество символов (включая ноль символов).
  • "^" - представляет собой отрицание. Может использоваться в сочетании с другими символами для исключения определенных значений.


Например, чтобы найти документы, содержащие слова, начинающиеся с "sphinx" и заканчивающиеся на "search", можно использовать следующий запрос:


1


SELECT * FROM index_name WHERE field_name LIKE 'sphinx%search'


Или чтобы найти документы, содержащие слова, начинающиеся с "sphinx" и не содержащие слова, начинающиеся с "example", можно использовать следующий запрос:


1


SELECT * FROM index_name WHERE field_name LIKE 'sphinx*^example*'