我在C#中使用NEST查詢ElasticSearch數據庫(丹麥CVR註冊表)。我試圖制定一個查詢,將查詢此方案:構建嵌套屬性的NEST/ElasticSearch查詢
relations: [
{
participant: {
key: 123123
},
organisations: [
{
organisationName: {
name: "some string",
period: {
from: "SOME DATE"
to: "SOMEDATE OR NULL"
}
},
... more of similar objects ..
}
]
},
.. more of similar objects ..
]
我在這裏的問題是,我需要找到一個有一定participant.key值,而在同一時間有一個特定的組織的文件。 organisationName.name和organisations.organisationName.period.到
缺少或空值我知道我需要使用嵌套查詢來獲取文件,該文件在to字段中同時具有空值,並且名稱中包含特定名稱字段,但最重要的是,我還需要在particiant.key字段中具有特定的密鑰,這是我遇到麻煩的地方。請注意,我檢查的所有3個字段必須位於同一個關係對象中,並且to和name字段必須位於同一個organisationName對象內。
沒有密鑰部分作爲JSON查詢查詢是這樣的:
{
"query": {
"bool": {
"must": [
{
"nested": {
"path": "relations.organisations.organisationName",
"score_mode": "max",
"query": {
"bool": {
"must": [
{ "match": { "relations.organisations.organisationName.name": "EJERREGISTER" }},
{"filtered": { "filter" : {
"missing" : { "field" : "relations.organisations.organisationName.period.to" }
} } }
]
}}}}
]
}}}
希望有人在那裏是在NEST查詢DSL使得這些查詢貼切。我也可以從純ElasticSearch JSON查詢工作,但.NET等價物將成爲我的首選選項:)
在此先感謝!