elasticsearch 使用匹配查询嵌套对象

qf9go6mv  于 7个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(52)

我刚刚开始使用Elasticsearch,并建立了一个简单的集成到丹麦CVR注册,我拉各种客户端信息。所有这一切都按预期工作。但现在我必须添加2个新对象-'attributter'和'deltagerRelation'-两者都是数组。它们都包含大量的信息,我只需要deltagerRelation中的1个元素和"attributter"对象中的2个元素。我正在努力创建一个查询来实现这一点。
这就是我试图实现的-希望这个伪代码是有意义的:
从对象'deltagereclave':

GET ELEMENT FROM Vrvirksomhed.deltagerRelation WHERE Vrvirksomhed.deltagerRelation.organisationer.hovedtype = 'REVISION' AND Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.period.gyldigFra IS NOT NULLAND Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.period.gyldigFra IS NULL

字符串
从对象"attributter":

GET ELEMENT FROM Vrvirksomhed.attributter  WHERE Vrvirksomhed.attributter.type IN ('REGNSKABSÅR_SLUT', 'REGNSKABSÅR_START')


这是我当前的请求,我只是拉1客户端。它在这里我想实现查询。请不要你不能访问端点-你需要一个关键字

POST http://distribution.virk.dk/cvr-permanent/virksomhed/_search

{
    "_source": [
        "Vrvirksomhed.cvrNummer",
        "Vrvirksomhed.reklamebeskyttet",
        "Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn",
        "Vrvirksomhed.virksomhedMetadata.nyesteBeliggenhedsadresse",
        "Vrvirksomhed.virksomhedMetadata.nyesteHovedbranche",       
        "Vrvirksomhed.virksomhedMetadata.sammensatStatus",      
        "Vrvirksomhed.deltagerRelation",
        "Vrvirksomhed.attributter"
    ],
    "query": {
        "term": {
            "Vrvirksomhed.cvrNummer": "61126228"
        }
    }
}


这是回应-为了更好地概述,

[
    {
        "_index": "cvr-v-20220630",
        "_type": "_doc",
        "_id": "3089460",
        "_score": 10.979432,
        "_source": {
            "Vrvirksomhed": {
                "cvrNummer": 61126228,
                "deltagerRelation": [
                    {
                        "organisationer": [
                            {
                                "organisationsNavn": [
                                    {
                                        "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                        "navn": "Revision",
                                        "periode": {
                                            "gyldigFra": null,
                                            "gyldigTil": null
                                        }
                                    }
                                ],
                                "enhedsNummerOrganisation": 4004678075,
                                "hovedtype": "REVISION",
                                "medlemsData": [
                                    {
                                        "attributter": [
                                            {
                                                "type": "FUNKTION",
                                                "vaerdier": [
                                                    {
                                                        "sidstOpdateret": "2015-05-08T08:33:25+02:00",
                                                        "vaerdi": "REVISION",
                                                        "periode": {
                                                            "gyldigFra": "2015-03-18",
                                                            "gyldigTil": null
                                                        }
                                                    }
                                                ],
                                                "sekvensnr": 0,
                                                "vaerditype": "string"
                                            }
                                        ]
                                    }
                                ],
                                "attributter": [
                                    {
                                        "type": "FUNKTION",
                                        "vaerdier": [
                                            {
                                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                                "vaerdi": "Revision",
                                                "periode": {
                                                    "gyldigFra": null,
                                                    "gyldigTil": null
                                                }
                                            }
                                        ],
                                        "sekvensnr": 0,
                                        "vaerditype": "string"
                                    }
                                ]
                            }
                        ],
                        "kontorsteder": [
                            {
                                "penhed": {
                                    "navne": [
                                        {
                                            "sidstOpdateret": "2011-10-13T16:32:58+02:00",
                                            "navn": "Deloitte Statsautoriseret Revisionspartnerselskab",
                                            "periode": {
                                                "gyldigFra": "2011-10-13",
                                                "gyldigTil": null
                                            }
                                        }
                                    ],
                                    "beliggenhedsadresse": [
                                        {
                                            "vejkode": 8122,
                                            "fritekst": null,
                                            "adresseId": null,
                                            "vejnavn": "Weidekampsgade",
                                            "bogstavTil": null,
                                            "conavn": null,
                                            "bogstavFra": null,
                                            "periode": {
                                                "gyldigFra": "2011-10-13",
                                                "gyldigTil": null
                                            },
                                            "kommune": {
                                                "sidstOpdateret": "2006-11-13T00:00:00+01:00",
                                                "kommuneNavn": "KØBENHAVN",
                                                "kommuneKode": 101,
                                                "periode": {
                                                    "gyldigFra": "2007-01-01",
                                                    "gyldigTil": null
                                                }
                                            },
                                            "husnummerFra": 6,
                                            "postboks": null,
                                            "sidstOpdateret": "2016-08-23T14:19:38+02:00",
                                            "postnummer": 2300,
                                            "etage": null,
                                            "bynavn": null,
                                            "husnummerTil": null,
                                            "sidedoer": null,
                                            "landekode": "DK",
                                            "sidstValideret": null,
                                            "postdistrikt": "København S"
                                        }
                                    ],
                                    "sidstOpdateret": null,
                                    "sidstIndlaest": "2023-11-02T10:31:46.693+01:00",
                                    "adresseOpdateringOphoert": null,
                                    "enhedsNummer": 4003554478,
                                    "adresseHemmelig": null,
                                    "forretningsnoegle": 1017192430,
                                    "adresseHemmeligUndtagelse": null,
                                    "organisationstype": null,
                                    "postadresse": [],
                                    "enhedstype": "PRODUKTIONSENHED"
                                },
                                "attributter": [
                                    {
                                        "type": "FUNKTION",
                                        "vaerdier": [
                                            {
                                                "sidstOpdateret": "2015-05-08T08:33:25+02:00",
                                                "vaerdi": "KONTORSTED",
                                                "periode": {
                                                    "gyldigFra": "2015-03-18",
                                                    "gyldigTil": null
                                                }
                                            }
                                        ],
                                        "sekvensnr": 0,
                                        "vaerditype": "string"
                                    }
                                ]
                            }
                        ],
                        "deltager": {
                            "navne": [
                                {
                                    "sidstOpdateret": "2015-03-12T17:58:37+01:00",
                                    "navn": "DELOITTE STATSAUTORISERET REVISIONSPARTNERSELSKAB",
                                    "periode": {
                                        "gyldigFra": "2011-10-13",
                                        "gyldigTil": null
                                    }
                                }
                            ],
                            "beliggenhedsadresse": [
                                {
                                    "vejkode": 8122,
                                    "fritekst": null,
                                    "adresseId": null,
                                    "vejnavn": "Weidekampsgade",
                                    "bogstavTil": null,
                                    "conavn": null,
                                    "bogstavFra": null,
                                    "periode": {
                                        "gyldigFra": "2011-10-13",
                                        "gyldigTil": null
                                    },
                                    "kommune": {
                                        "sidstOpdateret": "2006-11-13T00:00:00+01:00",
                                        "kommuneNavn": "KØBENHAVN",
                                        "kommuneKode": 101,
                                        "periode": {
                                            "gyldigFra": "2007-01-01",
                                            "gyldigTil": null
                                        }
                                    },
                                    "husnummerFra": 6,
                                    "postboks": null,
                                    "sidstOpdateret": "2013-11-22T22:40:23+01:00",
                                    "postnummer": 2300,
                                    "etage": null,
                                    "bynavn": null,
                                    "husnummerTil": null,
                                    "sidedoer": null,
                                    "landekode": "DK",
                                    "sidstValideret": null,
                                    "postdistrikt": "København S"
                                }
                            ],
                            "sidstOpdateret": "2023-11-01T08:53:28+01:00",
                            "sidstIndlaest": "2023-11-02T10:31:46.693+01:00",
                            "adresseOpdateringOphoert": null,
                            "enhedsNummer": 5651072,
                            "adresseHemmelig": null,
                            "forretningsnoegle": 33963556,
                            "adresseHemmeligUndtagelse": null,
                            "organisationstype": null,
                            "postadresse": [],
                            "enhedstype": "VIRKSOMHED"
                        }
                    },
                    {
                        "organisationer": [
                            {
                                "organisationsNavn": [
                                    {
                                        "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                        "navn": "Bestyrelse",
                                        "periode": {
                                            "gyldigFra": null,
                                            "gyldigTil": null
                                        }
                                    }
                                ],
                                "enhedsNummerOrganisation": 4004678073,
                                "hovedtype": "LEDELSESORGAN",
                                "medlemsData": [
                                    {
                                        "attributter": [
                                            {
                                                "type": "FUNKTION",
                                                "vaerdier": [
                                                    {
                                                        "sidstOpdateret": "2022-03-25T11:12:29+01:00",
                                                        "vaerdi": "BESTYRELSESMEDLEM",
                                                        "periode": {
                                                            "gyldigFra": "2022-03-17",
                                                            "gyldigTil": null
                                                        }
                                                    }
                                                ],
                                                "sekvensnr": 0,
                                                "vaerditype": "string"
                                            },
                                            {
                                                "type": "VALGFORM",
                                                "vaerdier": [
                                                    {
                                                        "sidstOpdateret": "2022-03-25T11:12:29+01:00",
                                                        "vaerdi": "medarbejdere i selskabet",
                                                        "periode": {
                                                            "gyldigFra": "2022-03-17",
                                                            "gyldigTil": null
                                                        }
                                                    }
                                                ],
                                                "sekvensnr": 0,
                                                "vaerditype": "string"
                                            }
                                        ]
                                    }
                                ],
                                "attributter": [
                                    {
                                        "type": "FUNKTION",
                                        "vaerdier": [
                                            {
                                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                                "vaerdi": "Bestyrelse",
                                                "periode": {
                                                    "gyldigFra": null,
                                                    "gyldigTil": null
                                                }
                                            }
                                        ],
                                        "sekvensnr": 0,
                                        "vaerditype": "string"
                                    }
                                ]
                            }
                        ],
                        "kontorsteder": [],
                        "deltager": {
                            "navne": [
                                {
                                    "sidstOpdateret": null,
                                    "navn": "Aleksandras Cicasovas",
                                    "periode": {
                                        "gyldigFra": null,
                                        "gyldigTil": null
                                    }
                                }
                            ],
                            "beliggenhedsadresse": [
                                {
                                    "vejkode": null,
                                    "fritekst": "Linkmenų Gatvė 33-11\n08217 Vilnius",
                                    "adresseId": null,
                                    "vejnavn": null,
                                    "bogstavTil": null,
                                    "conavn": null,
                                    "bogstavFra": null,
                                    "periode": {
                                        "gyldigFra": "2022-06-17",
                                        "gyldigTil": null
                                    },
                                    "kommune": null,
                                    "husnummerFra": null,
                                    "postboks": null,
                                    "sidstOpdateret": "2022-06-16T23:53:17Z",
                                    "postnummer": null,
                                    "etage": null,
                                    "bynavn": null,
                                    "husnummerTil": null,
                                    "sidedoer": null,
                                    "landekode": "LT",
                                    "sidstValideret": null,
                                    "postdistrikt": null
                                }
                            ],
                            "sidstOpdateret": "2022-06-18T00:03:23.732+02:00",
                            "sidstIndlaest": "2023-11-02T10:31:46.693+01:00",
                            "adresseOpdateringOphoert": false,
                            "enhedsNummer": 4009216850,
                            "adresseHemmelig": false,
                            "forretningsnoegle": 4009216850,
                            "adresseHemmeligUndtagelse": false,
                            "organisationstype": null,
                            "postadresse": [],
                            "enhedstype": "ANDEN_DELTAGER"
                        }
                    },
                    {
                        "organisationer": [
                            {
                                "organisationsNavn": [
                                    {
                                        "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                        "navn": "Direktion",
                                        "periode": {
                                            "gyldigFra": null,
                                            "gyldigTil": null
                                        }
                                    }
                                ],
                                "enhedsNummerOrganisation": 4004678074,
                                "hovedtype": "LEDELSESORGAN",
                                "medlemsData": [
                                    {
                                        "attributter": [
                                            {
                                                "type": "FUNKTION",
                                                "vaerdier": [
                                                    {
                                                        "sidstOpdateret": "2022-05-04T12:15:58+02:00",
                                                        "vaerdi": "DIREKTØR",
                                                        "periode": {
                                                            "gyldigFra": "2022-05-01",
                                                            "gyldigTil": null
                                                        }
                                                    }
                                                ],
                                                "sekvensnr": 0,
                                                "vaerditype": "string"
                                            }
                                        ]
                                    }
                                ],
                                "attributter": [
                                    {
                                        "type": "FUNKTION",
                                        "vaerdier": [
                                            {
                                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                                "vaerdi": "Direktion",
                                                "periode": {
                                                    "gyldigFra": null,
                                                    "gyldigTil": null
                                                }
                                            }
                                        ],
                                        "sekvensnr": 0,
                                        "vaerditype": "string"
                                    }
                                ]
                            }
                        ],
                        "kontorsteder": [],
                        "deltager": {
                            "navne": [
                                {
                                    "sidstOpdateret": null,
                                    "navn": "Barbro Johanna Gunnarsdotter Norberg",
                                    "periode": {
                                        "gyldigFra": null,
                                        "gyldigTil": null
                                    }
                                }
                            ],
                            "beliggenhedsadresse": [
                                {
                                    "vejkode": null,
                                    "fritekst": "Kommendörsgatan 44\n11458 Stockholm",
                                    "adresseId": null,
                                    "vejnavn": null,
                                    "bogstavTil": null,
                                    "conavn": null,
                                    "bogstavFra": null,
                                    "periode": {
                                        "gyldigFra": "2022-06-17",
                                        "gyldigTil": null
                                    },
                                    "kommune": null,
                                    "husnummerFra": null,
                                    "postboks": null,
                                    "sidstOpdateret": "2022-06-16T23:34:56Z",
                                    "postnummer": null,
                                    "etage": null,
                                    "bynavn": null,
                                    "husnummerTil": null,
                                    "sidedoer": null,
                                    "landekode": "SE",
                                    "sidstValideret": null,
                                    "postdistrikt": null
                                }
                            ],
                            "sidstOpdateret": "2022-06-18T00:04:26.092+02:00",
                            "sidstIndlaest": "2023-11-02T10:31:46.693+01:00",
                            "adresseOpdateringOphoert": false,
                            "enhedsNummer": 4009254383,
                            "adresseHemmelig": false,
                            "forretningsnoegle": 4009254383,
                            "adresseHemmeligUndtagelse": false,
                            "organisationstype": null,
                            "postadresse": [],
                            "enhedstype": "ANDEN_DELTAGER"
                        }
                    }
                ],
                "reklamebeskyttet": true,
                "attributter": [
                    {
                        "type": "ARKIV_REGISTRERINGSNUMMER",
                        "vaerdier": [
                            {
                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                "vaerdi": "A/S28472",
                                "periode": {
                                    "gyldigFra": null,
                                    "gyldigTil": null
                                }
                            }
                        ],
                        "sekvensnr": 0,
                        "vaerditype": "string"
                    },
                    {
                        "type": "BØRSNOTERET",
                        "vaerdier": [
                            {
                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                "vaerdi": "true",
                                "periode": {
                                    "gyldigFra": "2005-01-01",
                                    "gyldigTil": null
                                }
                            }
                        ],
                        "sekvensnr": 0,
                        "vaerditype": "boolean"
                    },
                    {
                        "type": "REGNSKABSÅR_SLUT",
                        "vaerdier": [
                            {
                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                "vaerdi": "--12-31",
                                "periode": {
                                    "gyldigFra": null,
                                    "gyldigTil": null
                                }
                            }
                        ],
                        "sekvensnr": 0,
                        "vaerditype": "gMonthDay"
                    },
                    {
                        "type": "REGNSKABSÅR_START",
                        "vaerdier": [
                            {
                                "sidstOpdateret": "2015-02-10T00:00:00+01:00",
                                "vaerdi": "--01-01",
                                "periode": {
                                    "gyldigFra": null,
                                    "gyldigTil": null
                                }
                            }
                        ],
                        "sekvensnr": 0,
                        "vaerditype": "gMonthDay"
                    }
                ],
                "virksomhedMetadata": {
                    "nyesteHovedbranche": {
                        "sidstOpdateret": "2007-12-25T09:45:25+01:00",
                        "branchetekst": "Banker, sparekasser og andelskasser",
                        "branchekode": "641900",
                        "periode": {
                            "gyldigFra": "2008-01-01",
                            "gyldigTil": null
                        }
                    },
                    "sammensatStatus": "NORMAL",
                    "nyesteNavn": {
                        "navn": "DANSKE BANK A/S"
                    },
                    "nyesteBeliggenhedsadresse": {
                        "vejkode": 2992,
                        "fritekst": null,
                        "adresseId": "ccfb6ead-f39e-4438-8a9f-22b2b3d0b202",
                        "vejnavn": "Holmens Kanal",
                        "bogstavTil": null,
                        "conavn": null,
                        "bogstavFra": null,
                        "periode": {
                            "gyldigFra": "2007-01-10",
                            "gyldigTil": null
                        },
                        "kommune": {
                            "sidstOpdateret": "2006-11-13T00:00:00+01:00",
                            "kommuneNavn": "KØBENHAVN",
                            "kommuneKode": 101,
                            "periode": {
                                "gyldigFra": "2007-01-01",
                                "gyldigTil": null
                            }
                        },
                        "husnummerFra": 2,
                        "postboks": null,
                        "sidstOpdateret": "2007-01-10T18:12:10+01:00",
                        "postnummer": 1060,
                        "etage": null,
                        "bynavn": null,
                        "husnummerTil": 12,
                        "sidedoer": null,
                        "landekode": "DK",
                        "sidstValideret": "2017-10-09T09:38:54.228+02:00",
                        "postdistrikt": "København K"
                    }
                }
            }
        }
    }
]


最新消息:
我发现我正在查询错误的字段。所以我将查询从@imotov更改为this。它似乎做了我想要的。

{
"_source": [
    "Vrvirksomhed.cvrNummer",
    "Vrvirksomhed.reklamebeskyttet",
    "Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn",
    "Vrvirksomhed.virksomhedMetadata.nyesteBeliggenhedsadresse",
    "Vrvirksomhed.virksomhedMetadata.nyesteHovedbranche",
    "Vrvirksomhed.virksomhedMetadata.sammensatStatus"
],
"query": {
    "bool": {
        "must": [
            {
                "term": {
                    "Vrvirksomhed.cvrNummer": "61126228"
                }
            },
            {
                "nested": {
                    "inner_hits": {},
                    "path": "Vrvirksomhed.deltagerRelation",
                    "query": {
                        "nested": {
                            "path": "Vrvirksomhed.deltagerRelation.organisationer",
                            "query": {
                                "nested": {
                                    "path": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData",
                                    "query": {
                                        "nested": {
                                            "path": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter",
                                            "query": {
                                                "nested": {
                                                    "path": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier",
                                                    "query": {
                                                        "bool": {
                                                            "must": [
                                                                {
                                                                    "match": {
                                                                        "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.vaerdi": "REVISION"
                                                                    }
                                                                },
                                                                {
                                                                    "nested": {
                                                                        "bool": {
                                                                            "must": [
                                                                                {
                                                                                    "exists": {
                                                                                        "field": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.periode.gyldigFra"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "must_not": [
                                                                                {
                                                                                    "exists": {
                                                                                        "field": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.periode.gyldigTil"
                                                                                    }
                                                                                }
                                                                            ]
                                                                        }
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            {
                "nested": {
                    "inner_hits": {},
                    "path": "Vrvirksomhed.attributter",
                    "query": {
                        "bool": {
                            "should": [
                                {
                                    "match": {
                                        "Vrvirksomhed.attributter.type": "REGNSKABSÅR_SLUT"
                                    }
                                },
                                {
                                    "match": {
                                        "Vrvirksomhed.attributter.type": "REGNSKABSÅR_START"
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        ]
    }
}


}

yvt65v4c

yvt65v4c1#

我不得不承认,我已经有一段时间没有看到这样一个可怕的Map了。下面是查询:

{
  "_source": [
    "Vrvirksomhed.cvrNummer",
    "Vrvirksomhed.reklamebeskyttet",
    "Vrvirksomhed.virksomhedMetadata.nyesteNavn.navn",
    "Vrvirksomhed.virksomhedMetadata.nyesteBeliggenhedsadresse",
    "Vrvirksomhed.virksomhedMetadata.nyesteHovedbranche",
    "Vrvirksomhed.virksomhedMetadata.sammensatStatus"
  ],
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "Vrvirksomhed.cvrNummer": "61126228"
          }
        },
        {
          "nested": {
            "inner_hits": {},
            "path": "Vrvirksomhed.deltagerRelation",
            "query": {
              "nested": {
                "path": "Vrvirksomhed.deltagerRelation.organisationer",
                "query": {
                  "bool": {
                    "must": [
                      {
                        "match": {
                          "Vrvirksomhed.deltagerRelation.organisationer.hovedtype": "REVISION"
                        }
                      },
                      {
                        "nested": {
                          "path": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData",
                          "query": {
                            "nested": {
                              "path": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter",
                              "query": {
                                "nested": {
                                  "path": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier",
                                  "query": {
                                    "bool": {
                                      "must": [
                                        {
                                          "exists": {
                                            "field": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.periode.gyldigFra"
                                          }
                                        }
                                      ],
                                      "must_not": [
                                        {
                                          "exists": {
                                            "field": "Vrvirksomhed.deltagerRelation.organisationer.medlemsData.attributter.vaerdier.periode.gyldigTil"
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        {
          "nested": {
            "inner_hits": {},
            "path": "Vrvirksomhed.attributter",
            "query": {
              "bool": {
                "should": [
                  {
                    "match": {
                      "Vrvirksomhed.attributter.type": "REGNSKABSÅR_SLUT"
                    }
                  },
                  {
                    "match": {
                      "Vrvirksomhed.attributter.type": "REGNSKABSÅR_START"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}

字符串

相关问题