Sphinx 斯芬克斯思考中的状态

Sphinx 斯芬克斯思考中的状态,sphinx,thinking-sphinx,Sphinx,Thinking Sphinx,有没有可能用OR做一些类似于和条件的事情 这是我用和进行的简单sphinx查询 Job.search('', {with: {canonical_type: Zlib::crc32('SubCategory')}, conditions: { sub_category_ids: [4]}}) 我想添加一个或。。。类似于 WHERE (MATCH('@sub_category_ids [4]') AND `canonical_type` = 1916160457 OR MATCH('@sub

有没有可能用OR做一些类似于和条件的事情

这是我用
进行的简单sphinx查询

Job.search('', {with: {canonical_type: Zlib::crc32('SubCategory')},  conditions: { sub_category_ids: [4]}})

我想添加一个或。。。类似于

WHERE (MATCH('@sub_category_ids [4]') AND `canonical_type` = 1916160457 OR MATCH('@sub_category_ids [4]') AND `canonical_type` = 4282022807)
因此,我可以搜索具有不同
规范\u类型的ID

不知道如何在思考斯芬克斯时做到这一点


谢谢

这实际上是斯芬克斯自身的局限性。它不支持或在何处(也不筑巢)——这就是为什么它不在思考斯芬克斯

但是

可以写成SphinxQL:

WHERE MATCH('@sub_category_ids [4]') AND `canonical_type` IN (1916160457,4282022807)
。。。ie IN()运算符有点像“OR”。如果thinkinx sphinx使用数组自动执行此操作,也不会感到惊讶

with: {canonical_type: [Zlib::crc32('SubCategory1'), Zlib::crc32('SubCategory2')] }
基于

WHERE MATCH('@sub_category_ids [4]') AND `canonical_type` IN (1916160457,4282022807)
with: {canonical_type: [Zlib::crc32('SubCategory1'), Zlib::crc32('SubCategory2')] }