Я пытаюсь выполнить запрос ES для двойного вложенного документа. Термин запроса внутри вложенного запроса, похоже, не работает. Если я заменю приведенный ниже запрос на запрос терминами, это сработает. Я публикую и сопоставление и запрос для вашей справки. Я делаю что-то не так? Я использую ES версию 6.4. По сути, я хочу использовать условие И в поле «bio.mut.type» и вернуть соответствующие документы.
Отображение:
{
"assoc": {
"date_detection": true,
"properties": {
"bio": {
"type": "nested",
"properties": {
"node": {
"type": "keyword",
"index": "true"
},
"mut": {
"type": "nested",
"properties": {
"biomarkerType": {
"type": "keyword"
},
"createdBy": {
"type": "keyword"
},
"creationDate": {
"type": "date"
},
"domain": {
"type": "keyword"
},
"id": {
"type": "long"
},
"node": {
"type": "keyword"
},
"status": {
"type": "keyword"
},
"type": {
"type": "keyword"
},
"updateDate": {
"type": "date"
},
"updatedBy": {
"type": "keyword"
}
}
}
}
}
},
"version": {
"type": "keyword"
},
"domain": {
"type": "keyword"
}
}
}
ЗАПРОС:
{
"bool" : {
"must" : [
{
"nested" : {
"query" : {
"terms" : {
"bio.node" : [
"X"
],
"boost" : 1.0
}
},
"path" : "bio",
"ignore_unmapped" : false,
"score_mode" : "none",
"boost" : 1.0
}
},
{
"nested" : {
"query" : {
"nested" : {
"query" : {
"bool" : {
"must" : [
{
"term" : {
"bio.mut.type" : {
"value" : "M",
"boost" : 1.0
}
}
},
{
"term" : {
"bio.mut.type" : {
"value" : "F",
"boost" : 1.0
}
}
},
{
"term" : {
"bio.mut.type" : {
"value" : "C",
"boost" : 1.0
}
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"path" : "bio.mut",
"ignore_unmapped" : false,
"score_mode" : "none",
"boost" : 1.0
}
},
"path" : "bio",
"ignore_unmapped" : false,
"score_mode" : "none",
"boost" : 1.0
}
},
{
"terms" : {
"domain" : [
"X"
],
"boost" : 1.0
}
}
],
"must_not" : [
{
"terms" : {
"status" : [
"Deleted"
],
"boost" : 1.0
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
Образец документа:
{
"_index": "XXX",
"_type": "XXX",
"_id": "3",
"_score": 1.0,
"_source": {
"bio": [{
"mut": [{
"id": 3,
"type": "M"
},
{
"id": 4,
"type": "F"
},
{
"id": 5,
"type": "C"
}
]
}]
}
}