2014-09-01 56 views
2

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

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

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

回答

0

AFAIK的标准方式是使用QParserPlugin

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

-1

这似乎是一个坏主意。每当你改变查询时,你都在有效地“解析”它,并且正在为查询解析器承担全部责任。您可以在自定义查询解析器中正确执行此操作。查询重写过程如何耗时?这可能不值得担心......这就是缩放的目的。

+0

查询重写过程非常耗时,因为为了完成其工作,重写器从外部源检索数据。 – snakile 2014-10-28 16:42:53