我将Liferay 7.1与ElasticSearch一起使用,我要做的就是搜索(EXAMPLE):“这是一个测试”。
但是在这种情况下,“ is”和“ a”是停用词,它们被过滤掉了,因此我得到了我不想要的结果,例如:“此测试很困难”。
我正在使用像这样的BooleanQuery:
BooleanQuery keywordQuery = new BooleanQueryImpl();
keywordQuery.addTerms(KEYWORDS, keyword, false);
在这种情况下,关键字是“这是一个测试”。
有人可以告诉我如何使BooleanQuery不过滤掉停用词吗?
最诚挚的问候,
丹尼尔
答案 0 :(得分:1)
停词是建立索引时分析阶段的概念。因此,您的索引不包含“ is”和“ a”。因此,查询时没有参数可以使用停用词。
您可以做的是使用另一个搜索索引属性,其中包含带有停用词的全部内容。这取决于您的配置,可能已经是没有停用词的属性,或者您需要使用索引后处理器添加一个属性或修改弹性映射配置。
请检查您的文档结构(例如具有弹性总部)以检查停用词的属性。