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 函数解决——不知道怎么放进入思维狮身人面像)
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 函数解决——不知道怎么放进入思维狮身人面像)