我在lucene中使用同义词来提高搜索的召回率。为此,我构造了一个SynonymMap,并在我的自定义分析器中使用了一个SynonymGraphFilter。同义词映射如下所示:
大众->大众
宝马->巴伐利亚摩托
我使用QueryParser来解析查询。
现在我想降低同义词的提升率(例如,如果我搜索'bmw',那么'bayerische motoren werke‘应该有一个更低的提升率)
我怎样才能做到这一点?似乎Lucene支持这一点(参见https://issues.apache.org/jira/browse/LUCENE-9171),但是我不知道如何使用它。
发布于 2020-12-14 00:18:35
这里有两种不同的处理同义词的方法:
(1)您对SynonymMap的使用,正如您所提到的,这是一种预先构建同义词列表的方法,然后可以在分析器和常规查询中使用。
(2)您提到的增强功能。
正如增强票证所指出的,“这已经针对同义词查询完成了。”
SynonymQuery类有一个构建器,它允许您使用boost value添加术语(作为同义词)。
我不认为有任何直接的方法来结合这两种方法。同义词映射不支持boost。我认为最好的做法是遍历预定义的同义词列表,并将值提供给同义词查询构建器。
https://stackoverflow.com/questions/65242994
复制相似问题