首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch复合查询

ElasticSearch复合查询
EN

Stack Overflow用户
提问于 2021-04-07 08:53:02
回答 1查看 125关注 0票数 0

我的索引数据是

代码语言:javascript
复制
    {
      "first_name":"Kevin",
      "last_name":"John",
      "job": "IT"
    }
    {
      "first_name":"John",
      "last_name":"Thimothy",
      "job": "Accountant"
    }
    {
      "first_name":"Eric",
      "last_name":"Villa",
      "job": "Driver"
    }
    {
      "first_name":"John",
      "last_name":"Villa",
      "job": "Student"
    }

我不确定是否有人能帮助我构建一个查询,以获取具有first_namelast_name作为John的数据,并有一个作为ITStudent的工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-07 08:59:03

您需要使用bool/must/should子句的组合

搜索查询:

代码语言:javascript
复制
    {
      "query": {
        "bool": {
          "must": [
            {
              "bool": {
                "should": [
                  {
                    "match": {
                      "first_name": "John"
                    }
                  },
                  {
                    "match": {
                      "last_name": "John"
                    }
                  }
                ]
              }
            },
            {
              "bool": {
                "should": [
                  {
                    "match": {
                      "job": "IT"
                    }
                  },
                  {
                    "match": {
                      "job": "student"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    }

搜索结果将是

代码语言:javascript
复制
    "hits": [
          {
            "_index": "66982646",
            "_type": "_doc",
            "_id": "1",
            "_score": 2.4079456,
            "_source": {
              "first_name": "Kevin",
              "last_name": "John",
              "job": "IT"
            }
          },
          {
            "_index": "66982646",
            "_type": "_doc",
            "_id": "4",
            "_score": 1.89712,
            "_source": {
              "first_name": "John",
              "last_name": "Villa",
              "job": "Student"
            }
          }
        ]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66982646

复制
相关文章

相似问题

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