【问题标题】:How to ignore Stop words search using Lucene, when analysis of Stop Words is required?当需要分析停用词时,如何使用 Lucene 忽略停用词搜索?
【发布时间】:2026-02-06 04:25:01
【问题描述】:

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

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

但在解决方案中,另一个模块的另一个要求是跳入其中一个模块,该模块表示要在已分析停用词的相同字段上从搜索中排除停用词。

同时分析

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

现在要求当搜索字符串有“Love With Hubby”时忽略停用词,并使用 Love Hubby 返回最佳分数结果。请推荐!

【问题讨论】:

    标签: java hibernate lucene hibernate-search


    【解决方案1】:

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

    您遇到的问题很常见,因为人们经常需要结合使用不同选项执行的多个全文查询的得分。

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

    【讨论】: