首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ElasticSearch一起使用match_phrase和multi_match

ElasticSearch一起使用match_phrase和multi_match
EN

Stack Overflow用户
提问于 2019-06-19 09:08:29
回答 1查看 151关注 0票数 0

我使用es7.1,我想使用多匹配查询从几个字段中获取结果,但我希望在特定字段上使用match_phrase获取结果。

我尝试了很多东西,这是最接近我想要的版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'bool' : {
    'must' : {
        'multi_match' : {
            'fields' => ['titre', 'subtitre', 'description'],
            'query' => $query
        },
        'match_phrase' : {
            'titre' => $query
        }
    },
    'filters' : { // ... some filters }
}

我收到一个错误:

Parsing_exception,“原因”:“multi_match格式错误的查询,期望END_OBJECT但找到了FIELD_NAME

有办法将两者结合起来吗?我不想创建2个查询。

EN

回答 1

Stack Overflow用户

发布于 2019-06-19 09:48:48

当您想要多个must子查询时,只需要将子查询作为一个数组传递。这个修改应该可以工作(翻译成JSON):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "hello",
            "fields": ["name", "brand_name"]
          }
        },
        {
          "match_phrase": {
            "title": "hello"
          }
        }
      ]
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56672791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文