如何从functionquery过滤Solr得分

时间:2013-11-22 15:47:06

标签: solr filter lucene function-query

我有一个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')

这给了我正确的结果,但是我的计算可能很慢,所以我想知道是否可以在过滤查询中使用得分伪字段,或者以某种其他方式使得Solr缓存结果查询参数中的functionquery?或者是否有替代rangequery过滤器方法,可以实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

注意到这一点尚未得到解答。我自己已经研究过的东西。 认为这些链接可能会有所帮助。

SearchHub

Search-Lucene