我有一个 Solr 实例,我想使用 Solr 函数查询为每个文档计算自己的分数。例如,假设我有以下查询:
q={!func}termfreq('text', 'foo')
当我这样做时,我的结果有一个 numfound ,它是索引中所有文档的数量。我希望能够过滤掉那些分数低于给定数字的文档,所以理想情况下我想使用这样的范围查询进行过滤:
fq={!frange l=1}score
因为我的查询参数决定了结果分数。但如果我这样做,我会收到一条错误消息:
"error": {
"msg": "undefined field: \"score\"",
"code": 400
}
我尝试过添加这样的过滤器:
fq={!frange l=1}termfreq('text', 'foo')
这给了我正确的结果,但是我的计算可能很慢,所以我想知道是否可以在过滤器查询中使用 score 伪字段,或者以其他方式使 Solr 缓存函数查询的结果查询参数?或者是否有替代 rangequery 过滤器方法的方法来实现这一点?