我和ElasticSearch一起使用Liferay 7.1,我想做的就是搜索(例子):“这是一个测试”。
但在这种情况下,“是”和“a”是停用词,它们会被过滤掉,因此我得到了我不想要的结果:“这个测试摇滚”。
我正在使用这样的BooleanQuery:
BooleanQuery keywordQuery = new BooleanQueryImpl();
keywordQuery.addTerms(KEYWORDS, keyword, false);
在这种情况下的关键字是“这是一个测试”。
任何人都可以告诉我如何使BooleanQuery不过滤掉停用词?
最好的祝福,
丹尼尔
Stop-Words是索引时分析阶段的概念。所以你的索引不包含“是”和“a”。因此,在查询时没有使用停用词的参数。
您可以做的是使用不同的搜索索引属性,其中包含带停用词的完整内容。这取决于您的配置,可能已经是没有停用词的属性,或者您需要使用Index Post-Proccessor添加一个属性或修改弹性映射配置。
请检查您的文档结构(例如,使用弹性HQ)以检查停用词的属性。