Sphinx可以使用IN子句进行NOT过滤吗?

时间:2015-03-17 15:37:25

标签: python logic sphinx

这个问题是this simpler case的更复杂的扩展。

但是,在这种情况下,假设我有一个具有以下整数属性的索引:

category
type

这样每个文档都有一个category ID和一个type ID。

假设我还有一个category ID列表:

category_list = [1,3,5,7,9]

type ID列表:

type_list = [1,2]

我想过滤所有NOT (IN category_list AND IN type_list)

的文档

再一次,我正在使用Python sphinxapi.py

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

非常相似,仅使用IN()函数

.setSelect("*, IN(category,1,3,5,7,9)+IN(type,1,2) AS myfilter")
.setFilter("myfilter", [2], true)

不确定将列表转换为字符串的最佳python语法,但这并不困难。