首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >match_phrase elasticsearch中的可选术语

match_phrase elasticsearch中的可选术语
EN

Stack Overflow用户
提问于 2018-08-22 21:27:39
回答 1查看 427关注 0票数 0

我正在使用elasticsearch 6,并有以下查询

代码语言:javascript
复制
{  
 "query":{  
  "bool":{  
     "should":[  
        {  
           "match_phrase":{  
              "fieldOne":{  
                 "query":"One two three",
                 "slop":10
              }
           }
        },
        {  
           "match_phrase":{  
              "fieldTwo":{  
                 "query":"one two three",
                 "slop":10
              }
           }
        }

     ]
  }
 }
}

当我想要将两个字段与查询中的术语进行匹配时,这种方法效果很好。

但是,如果我有一个文档,它在fieldOne中有术语'one‘和'two’,上面没有返回结果,因为'three‘是必需的

我似乎找不到一种方法来使查询中的术语成为可选的,例如,我想说的是在这两个字段中查找任何术语

我使用match_phrase的原因是使用了slop,它允许术语在字段中的不同位置,这也是我所需要的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 21:32:42

如果使用顺序不重要,则不需要使用match_phrase,只需使用简单的match查询即可完成此工作

代码语言:javascript
复制
    {  
       "match":{  
          "fieldOne":{  
             "query":"one two three"
          }
       }
    },

然后,如果至少需要两个术语才能匹配,可以使用minimum_should_match

代码语言:javascript
复制
    {  
       "match":{  
          "fieldOne":{  
             "query":"one two three",
             "minimum_should_match": 2
          }
       }
    },
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51968002

复制
相关文章

相似问题

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