在查询时向过滤器中的术语添加提升

时间:2013-03-13 17:03:26

标签: java solr lucene filtering

我正在为Lucene / Solr开发一个SynonymFilter,它只在查询时运行,以使用同义词库扩展查询。我遇到的问题是我添加到查询中的同义词与原始术语具有相同的“权重”或“提升”,因此我最终可能会在结果中获得大量噪音。

有没有办法在过滤器中设置单个术语的“权重”或“提升”?

如果没有,我怎么办呢?

(与http://search-lucene.com/jd/lucene/analyzers-common/org/apache/lucene/analysis/synonym/SynonymFilter.html类似,但同义词的权重较小。)

1 个答案:

答案 0 :(得分:0)

是的,您可以在过滤器内或作为查询的一部分设置单个术语的权重。使用eDisMax解析器,您可以执行以下操作:

&defType=edismax&q=<your query terms>&qf=title:superman^2

这会增加标题字段中出现的所有超人。如果我明白你的要求,那就应该做你需要的。如果您有大量这些内容,则可以在defaults settings for your requestHandler中指定qf次提升。