思考Sphinx - 通过负面属性过滤并不起作用

时间:2015-01-13 09:56:36

标签: ruby-on-rails sphinx thinking-sphinx

思考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 answerthis answer,但它对我不起作用。我的Sphinx版本不支持浮点数的==运算符。我明白了:

  

sphinxql:此版本仅支持> =,< =和BETWEEN浮点过滤器类型

升级Sphinx并不是一个真正的选择。还有什么办法可以使这项工作?

1 个答案:

答案 0 :(得分:1)

bigint类型应该是有用的 - 它是唯一被签名的sphinx属性整数类型。

(因为找到比较浮点数更复杂,因为比较需要实现一个threadshold - 因为浮点数是不精确的 - sphinx不会使用过滤器,但可以与IF函数一起解决 - 不知道如何将它放入thinkingsphinx )