Sphinx过滤器 - 我可以在过滤器属性之间使用“OR”吗?

时间:2009-05-15 16:46:00

标签: database search sphinx

我正在使用sphinx从我的数据库中列出一些项目。 这几乎是100%,我还没想出如何在两个不同的过滤器之间创建OR。例如:

数据库中的我的对象有一个开始和结束日期,我可以filter(starting_date, x, y)filter(ending_date,x,y),但两个过滤器都必须返回true才能给我带来对象,我怎么能对sphinx说过滤此属性,还是那个属性?

3 个答案:

答案 0 :(得分:6)

在Sphinx论坛上提问并回答。

仅在0.9.9中使用SetSelect。

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

答案 1 :(得分:2)

在Sphinx中,无法在不同属性中使用OR逻辑。通常,有两种可能的解决方法:

  1. 拥有一个多值属性,其中包含您要匹配的两组值,并过滤值数组。
  2. 如果每次都是相同的OR逻辑,将它组合成一个布尔属性,让SQL语句做最初的努力工作。
  3. 使用时间戳使事情变得更加困难 - 此时MVA仅用于整数...你是否在特定时间发生了所有对象?或其他什么?

答案 2 :(得分:1)

Sphinx使用| for或

如“黑色”或“白色”将是“黑色”| “白色” http://www.sphinxsearch.com/docs/manual-0.9.9.html#boolean-syntax