2009-05-15 3 views
2

Я использую sphinx для перечисления некоторых элементов из моей базы данных здесь. Это почти 100%, я еще не понял, как создать OR между двумя различными фильтрами. Например:Sphinx Filters - Могу ли я иметь атрибуты «ИЛИ» между фильтрами?

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

ответ

2

В Сфинксе нет никакой логики OR. Обычно существует два возможных варианта работы:

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

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

+0

Исправление: как заметил Бен, это возможно в Sphinx, используя опцию Select. – pat

6

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

Только в 0.9.9, используя SetSelect.

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

+0

Спасибо! Ваш ответ спас мне много времени! Я никогда не думал, что вы можете фильтровать, задавая значения – Dienow

Смежные вопросы