Thinking Sphinx - 按否定属性过滤不起作用

Thinking Sphinx - filtering by negative attribute doesn't work

Thinking Sphinx 没有找到任何包含负列值的记录。在我的例子中,该列是 "site_id",它可以包含 -1(我们使用 -1 而不是 NULL)。我的索引看起来像下面的示例(我分别尝试了四个不同的示例):

ThinkingSphinx::Index.define :incident, with: :active_record, delta: ThinkingSphinx::Deltas::ResqueDelta do
  indexes site_id
  # indexes site_id, type: :float
  # has site_id
  # has site_id, type: :float
end

我尝试的解决方案是根据this answer and this answer,但它对我不起作用。我的 Sphinx 版本不支持浮点数的 == 运算符。我得到:

sphinxql: only >=, <=, and BETWEEN floating-point filter types are supported in this version

升级 Sphinx 并不是一个真正的选择。还可以做些什么来完成这项工作?

bigint 类型应该很有用 - 它是唯一有符号的 sphinx 属性整数类型。

(发现比较浮点数更复杂,因为比较需要实现线程保持——因为浮点数不精确——sphinx 不会用过滤器来做,但可以用 IF 函数解决——不知道怎么放进入思维狮身人面像)