Solr提供过滤查询(参数fq
)功能,允许以二进制方式匹配术语,而不会影响文档的分数。此外,缓存与筛选器查询匹配的文档集,以便与不同的主查询(参数q
)一起重用。
在特定的应用程序中,我想在不影响分数的情况下匹配文档(我现在不太关心缓存),但我只能修改主q
参数。
我希望输出等同于:
/select?q=foo&fq=bar
我以为我可以使用LocalParams做类似的事情:
/select?q=%2bfoo %2b_query_:"{!fq=bar} *:*"
(注意:%2b
解析为+
,使这些术语成为必需的前缀。)我希望LocalParams术语的行为类似于/select?q=*:*&fq=bar
,但是fq=bar
似乎没有效果。为什么不支持?
实现一个名为filter
的新查询解析器是否合理,以便可以使用以下内容?
/select?q=%2bfoo %2b_query_:"{!filter} bar"
此处的LocalParams术语将被解释为正在运行/select?q=bar
,但会将其得分纠正为0或1。
或者是否有一些标准功能允许我修改分配给术语的分数,以便将其校正为0或1?