Фильтры Sphinx. Могу ли я использовать «ИЛИ» между атрибутами фильтров?

StackOverflow https://stackoverflow.com/questions/869733

  •  22-08-2019
  •  | 
  •  

Вопрос

Я использую sphinx, чтобы перечислить здесь некоторые элементы из моей базы данных.Это почти 100%, просто я еще не разобрался как создать OR между двумя разными фильтрами.Например:

Мой объект в базе данных имеет начальную и конечную дату, я могу filter(starting_date, x, y) и filter(ending_date,x,y), но оба фильтра должны будут вернуть true, чтобы передать мне объект, как я могу сказать сфинксу отфильтровать этот атрибут или тот?

Это было полезно?

Решение

Sphinx использует | для или

Как в «черном» или «белом» было бы «черным» | "белый"http://www.sphinxsearch.com/docs/manual-0.9.9.html#boolean-syntax

Другие советы

Вопросы и ответы на форумах Sphinx.

Возможно только в версии 0.9.9 с использованием SetSelect.

http://sphinxsearch.com/forum/view.html?id=3577

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

  1. Имейте один многозначный атрибут с обоими наборами значений, которые вы хотите сопоставить, и фильтруйте массивы значений.
  2. Если каждый раз используется одна и та же логика ИЛИ, объедините ее в один логический атрибут, а оператор SQL выполнит начальную тяжелую работу.

Однако использование временных меток немного усложняет задачу: на данный момент MVA предназначены только для целых чисел...вам интересны все объекты, происходящие в определенное время?Или что-то другое?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top