在解析之前重写solr查询

时间:2014-09-01 10:52:35

标签: java solr lucene

我正在处理一个简单的查询重写器,它对查询字符串进行了一些更改。在解析查询或将查询发送到其他Solr节点之前,查询重写器应更改查询字符串。什么是最适合用于此类代码的Solr机制?目前我正在编写自定义搜索组件来完成这项工作。该组件修改了组件q方法中原始prepare参数的值。它有效,但我想知道Solr是否有为此设计的机制。

我没有将它作为自定义查询解析器实现,因为查询重写过程可能很耗时,所以我不希望它为每个碎片执行。

Solr是否内置了查询重写机制?

2 个答案:

答案 0 :(得分:0)

AFAIK的标准方式是使用QParserPlugin

但是,如果您通过HTTP使用Solr,也许您可​​以通过重写URL来解决这个问题吗?

答案 1 :(得分:-1)

这似乎是一个坏主意。无论何时更改查询,您都可以有效地解析"它正在承担查询解析器的全部责任。您也可以在自定义查询解析器中正确执行此操作。查询重写过程如何耗费时间?它可能不值得担心......这是缩放的目的。