首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配含义的Elasticsearch

匹配含义的Elasticsearch
EN

Stack Overflow用户
提问于 2021-09-13 17:18:04
回答 1查看 14关注 0票数 0

我有一个健身计划的elasticsearch索引。我想匹配计划标题,但仅执行文本匹配会导致问题。当搜索“减重”时,我看到了“减重”计划的最高结果,但第二个结果是“增重”计划。我怎么才能不把“体重减轻”和“体重增加”匹配起来呢?我正在寻找一种理解查询语义的方法,而不仅仅是文本匹配。

EN

回答 1

Stack Overflow用户

发布于 2021-09-14 11:25:06

如果要求文档包含所有单词"Weight“和"Loss”,请使用匹配运算符and

我假设你在全文match dsl中搜索"weight loss“一词。Elasticsearch将通过an analyzer分析你的查询:字符过滤器,标记器,令牌过滤器,所以这取决于你的相应设置。

如果您使用默认设置,搜索词"Weight Loss“将被分析并标记为"weight”和"loss“。由于default operator of match queryOR,因此它将匹配包含“”或“”的文档,因此您的“体重增加”文档也会被捕获。

为了只匹配包含“”和“”两个单词的文档,您需要在匹配查询中显式地使用运算符and

搜索查询应如下所示

代码语言:javascript
复制
{
    "query": {
        "match": {
            "<your_document_field_name>": {
                "query": "Weight Loss",
                "operator": "and"
            }            
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69166731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档