@edyth
В Sphinx для выполнения фильтра по полю типа set нужно использовать функцию IN
, которая проверяет наличие значения в заданном множестве.
Например, если у вас есть индекс с полем tags
, которое является множеством строк, и вы хотите найти все документы, содержащие тег "python", то запрос может выглядеть следующим образом:
1
|
SELECT * FROM index_name WHERE tags IN ('python'); |
Здесь index_name
- название вашего индекса, tags
- название поля, а 'python'
- значение, по которому вы хотите выполнить фильтрацию. Если вы хотите искать по нескольким значениям, то можно указать их через запятую:
1
|
SELECT * FROM index_name WHERE tags IN ('python', 'sphinx', 'search'); |
Также можно использовать оператор NOT IN
для исключения документов, содержащих заданные значения:
1
|
SELECT * FROM index_name WHERE tags NOT IN ('java', 'ruby'); |
Здесь будут найдены все документы, у которых поле tags
не содержит значения "java" или "ruby".