0

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

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

如果没有,我还能怎么做?

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

4

1 回答 1

0

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

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

这将增加标题字段中出现的所有超人。如果我明白你在问什么,这应该做你需要的。如果您有大量这些,您可以在您的 requestHandler 的默认设置中qf指定提升。

于 2013-03-13T17:22:54.447 回答