Solr FunctionQuery具有DIV(x,y)函数。我有这样的需要,如果y = 0,那么y应该等于x。
换句话说,我需要使用FunctionQuery表示以下逻辑:
if y == 0, return 1 /* i.e. DIV(x,x) */
else, return DIV(x,y)
无论如何,从Solr文档中,我找不到任何比较函数,例如EQ(x,value)等供我使用。
谁能给我一个提示,以使用FunctionQuery构造所需的逻辑?
谢谢!
最佳答案
要清理此问题并记录我的最终解决方案,这要感谢Srikanth Venugopalan的评论:
看起来,Lucid的作品documentation确实有一个错误。 FunctionQuery解析器不使用==之类的比较运算符,至少这是我通过查看源代码发现的。另外,用于IF()函数的字段分隔符应为,(逗号),而不应为;(分号)。
官方的Solr wiki是正确的。
关于Solr FunctionQuery : gte, lte,eq函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15513394/