如何在Lucene Search期间忽略停用词?
我已经分析了所有数据,包括使用自定义分析器的停止词,因为它是大多数搜索中的要求。
但是在解决方案中,另一个要求跳转到其中一个模块,该模块表示在相同的字段中排除搜索中的停止字,其中停止字已经被分析。
分析时
@Fields({@Field(index = Index.YES, store = Store.NO, analyzer = @Analyzer(impl=CustomStopWordsAccepterAnalyzer.class)),
现在要求说当搜索字符串具有" Love With Hubby"时忽略停用词。并使用Love Hubby返回最佳得分结果。请建议!
答案 0 :(得分:0)
为字段启用停用词后,停用词实际上不会在索引中编码,因此无法在查询时间内重新显示停用词。
您遇到的问题非常普遍,因为人们通常需要将使用不同选项执行的多个全文查询的分数合并。
解决方案相当简单:对于Java实体的每个属性,使用多个@Field
注释并为每个注释分配不同的索引字段名。这样,您可以使用BooleanQuery定位每个不同的字段,并将输出的分数考虑在内。