我正在处理一个简单的查询重写器,它对查询字符串进行了一些更改。在解析查询或将查询发送到其他Solr节点之前,查询重写器应更改查询字符串。什么是最适合用于此类代码的Solr机制?目前我正在编写自定义搜索组件来完成这项工作。该组件修改了组件q
方法中原始prepare
参数的值。它有效,但我想知道Solr是否有为此设计的机制。
我没有将它作为自定义查询解析器实现,因为查询重写过程可能很耗时,所以我不希望它为每个碎片执行。
Solr是否内置了查询重写机制?
答案 0 :(得分:0)
AFAIK的标准方式是使用QParserPlugin
。
但是,如果您通过HTTP使用Solr,也许您可以通过重写URL来解决这个问题吗?
答案 1 :(得分:-1)
这似乎是一个坏主意。无论何时更改查询,您都可以有效地解析"它正在承担查询解析器的全部责任。您也可以在自定义查询解析器中正确执行此操作。查询重写过程如何耗费时间?它可能不值得担心......这是缩放的目的。