思考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和this answer,但它对我不起作用。我的Sphinx版本不支持浮点数的==运算符。我明白了:
sphinxql:此版本仅支持> =,< =和BETWEEN浮点过滤器类型
升级Sphinx并不是一个真正的选择。还有什么办法可以使这项工作?
答案 0 :(得分:1)
bigint
类型应该是有用的 - 它是唯一被签名的sphinx属性整数类型。
(因为找到比较浮点数更复杂,因为比较需要实现一个threadshold - 因为浮点数是不精确的 - sphinx不会使用过滤器,但可以与IF函数一起解决 - 不知道如何将它放入thinkingsphinx )