当需要分析停用词时,如何忽略使用Lucene的停用词搜索?

时间:2017-05-12 02:36:40

标签: java hibernate lucene hibernate-search

如何在Lucene Search期间忽略停用词?

我已经分析了所有数据,包括使用自定义分析器的停止词,因为它是大多数搜索中的要求。

但是在解决方案中,另一个要求跳转到其中一个模块,该模块表示在相同的字段中排除搜索中的停止字,其中停止字已经被分析。

分析时

@Fields({@Field(index = Index.YES, store = Store.NO, analyzer = @Analyzer(impl=CustomStopWordsAccepterAnalyzer.class)),

现在要求说当搜索字符串具有" Love With Hubby"时忽略停用词。并使用Love Hubby返回最佳得分结果。请建议!

1 个答案:

答案 0 :(得分:0)

为字段启用停用词后,停用词实际上不会在索引中编码,因此无法在查询时间内重新显示停用词。

您遇到的问题非常普遍,因为人们通常需要将使用不同选项执行的多个全文查询的分数合并。

解决方案相当简单:对于Java实体的每个属性,使用多个@Field注释并为每个注释分配不同的索引字段名。这样,您可以使用BooleanQuery定位每个不同的字段,并将输出的分数考虑在内。