如何解决SOLR:具有多个字段字段元组的过滤查询 (fq)
这是一个例子。假设我有包含 distance
和 id
字段的文档。示例数据:
distance | id
-------------
10.0 | 5
10.0 | 6
10.0 | 7
11.0 | 8
13.0 | 9
现在我想获取符合以下条件 (distance,id) > (10.0,6)
的项目。所以响应应该是这样的:
10.0 | 7
11.0 | 8
13.0 | 9
如何在 SOLR 中执行此操作?
我知道它类似于游标,但我希望能够从任何文档开始获取数据。
解决方法
我找到了解决方案。
条件 (distance,id) > (10.0,6)
等价于 distance > 10.0 OR (distance = 10.0 AND id>6)
。所以我们一般搜索大于10.0的距离,但是如果它等于10.0,那么我们搜索id>6。
这转换为过滤器查询如下所示:
fq=distance:{10.0 TO *] OR (distance:10.0 AND id:{6 TO *])
需要注意的是,如果距离是使用函数计算的,则必须使用 frange
并将其放在括号中。示例:
mygeodist=geodist()&fq=({!frange l=10.0 incl=false}$mygeodist) OR (({!frange l=10.0 u=10.0}$mygeodist) AND id:{6 TO *])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。