Был в состоянии воспроизвести вашу проблему и исправить ее, пожалуйста, найдите пошаговое решение, чтобы она работала. вам нужно переместить nested
внутри блока must_not
и внести некоторые изменения в ваш запрос.
Индекс def
{
"mappings" :{
"properties" :{
"rules" :{
"type" : "nested"
}
}
}
}
Индексировать ваш пример до c
{
"rules": [
{
"id": 2,
"name": "rule3",
"questionDetailConditionalRules": [
{
"questionDetailId": 1
},
{
"questionDetailId": 2
}
]
},
{
"id": 3,
"name": "rule3",
"questionDetailConditionalRules": [
{
"questionDetailId": 4
},
{
"questionDetailId": 5
}
]
}
]
}
Поисковый запрос
{
"query": {
"bool": {
"must_not": [
{
"nested": {
"path": "rules", --> note `nested` is inside the `must_not` block.
"query": {
"bool": {
"filter": [
{
"term": {
"rules.questionDetailConditionalRules.questionDetailId": 1
}
}
]
}
}
}
}
]
}
}
}
Результат поиска
"hits": {
"total": {
"value": 0,
"relation": "eq"
},
"max_score": null,
"hits": []
}
Примечание: вы можете найти больше информации в этой ссылке.