【问题标题】:Elasticsearch Query Both Parent AND Child FieldsElasticsearch 查询父字段和子字段
【发布时间】:2021-07-28 13:54:46
【问题描述】:

我在 ES 中为companiesemployees 建立了一个父子映射。

我可以成功地执行以下查询来查找与父 company 字段匹配的子项:

{
    "query": {
        "has_parent": {
            "parent_type": "company",
            "query": {
                "match": {
                    "company_name": "stackoverflow"
                }
            }
        }
    }
}

我想不通的是如何增强它以同时查询子 employee 字段:

{
    "query": {
        "match": {
            "job_title": "CEO"
        }
    }
}

我想要拥有stackoverflow 的父母company_nameCEO 的孩子job_title 的孩子。

如何编写一个同时过滤父字段和子字段的查询?

【问题讨论】:

    标签: elasticsearch parent-child


    【解决方案1】:

    诀窍是将两个查询构建成filter 或类似的:

    {
        "query": {
            "bool": {
                "filter": [
                    {
                        "has_parent": {
                            "parent_type": "company",
    
                            //Query on the parent
    
                            "query": {
                                "match": {
                                    "company_name": "stackoverflow"
                                }
                            }
                        }
                    },
                    {
    
                       //Query on the child
    
                        "bool": {
                            "should": [
                                {
                                    "match": {
                                        "job_title": {
                                            "query": "CEO"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2016-08-18
      • 2022-12-04
      • 2020-08-07
      • 2020-10-10
      • 1970-01-01
      • 2021-05-03
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多