我是ElasticSearch的新手,我似乎找不到这个问题的答案。
将porter_stem
添加到索引分析器后,我可以(显然)不再像我以前那样使用match_phrase
来获得文字术语序列。例如,搜索**“playing my piano”以前会产生实际上与短语精确匹配的结果,但现在它们还包括“play my piano”或“plays my piano”这样的结果。更精确的匹配不被赋予更高的相关性分数。
我的问题是,这只是一个不可避免的,你不能同时有词干和文字搜索,或者有一些解决方案,我只是不知道?是以下任何一种可能:
1.执行文字搜索,其中只有“playing my piano”匹配,没有其他匹配
1.执行搜索,其中“playing my piano”优先于其他模糊结果,如“play my piano”或“plays my piano”**
1条答案
按热度按时间3mpgtkmj1#
很好的问题,是的,可以同时按
exact match
,partial match
和fuzzy match
查询和排序,并按匹配分数排序。我建议您为您的用例使用多个字段和不同的分析器。下面是一个示例。bool query:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html