1

我有一个 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 过滤器方法的方法来实现这一点?

4

1 回答 1

1

注意到这还没有回答。我自己研究过的东西。认为这些链接可能会有所帮助。

搜索中心

搜索-Lucene

于 2014-01-30T09:18:03.700 回答