1

Solr 提供了一个过滤查询(参数fq)功能,它允许以二进制方式匹配术语而不影响文档的分数。此外,与过滤器查询匹配的文档集被缓存以供不同的主要查询(参数q)重用。

在特定的应用程序中,我想在不影响分数的情况下匹配文档(我目前不太关心缓存),但只能修改主要q参数。

我希望输出等同于:

/select?q=foo&fq=bar

我原以为我可以使用LocalParams做类似的事情:

/select?q=%2bfoo %2b_query_:"{!fq=bar} *:*"

(注意:%2b解析为 a +,使那些以它为前缀的术语是强制性的。)我希望 LocalParams 术语的行为类似于/select?q=*:*&fq=bar,但fq=bar似乎没有效果。为什么不支持?

实现一个新的查询解析器是否是合理的,filter这样可以实现以下操作?

/select?q=%2bfoo %2b_query_:"{!filter} bar"

此处的 LocalParams 术语将被解释为正在运行/select?q=bar,但会将其分数修正为 0 或 1。

或者是否有一些标准功能允许我修改分配给一个术语的分数,以便将其纠正为 0 或 1?

4

0 回答 0