Я хочу отфильтровать envId, empId, project.Id, tests.id
Поскольку вы не указали какой-либо конкретный фильтр, который хотите применить к поля поисковый запрос, показанный ниже, фильтрует документы на основе их Id
сопоставления:
{
"mappings": {
"properties": {
"enviID": {
"type": "integer"
},
"empID": {
"type": "integer"
},
"projects": {
"type": "nested",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "text"
}
}
},
"tests": {
"type": "nested",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "text"
}
}
}
}
}
}
поискового запроса
{
"query": {
"bool": {
"filter": [
{
"bool": {
"must": [
{
"term": {
"enviID": {
"value": "123"
}
}
},
{
"term": {
"empID": {
"value": "456"
}
}
},
{
"nested": {
"path": "projects",
"query": {
"bool": {
"must": [
{
"match": {
"projects.id": 123
}
}
]
}
}
}
},
{
"nested": {
"path": "tests",
"query": {
"bool": {
"must": [
{
"match": {
"tests.id": 999
}
}
]
}
}
}
}
]
}
}
]
}
}
}
Результат поиска
"hits": [
{
"_index": "my_index",
"_type": "_doc",
"_id": "1",
"_score": 0.0,
"_source": {
"enviID": 123,
"empID": 456,
"projects": [
{
"id": 123,
"name": "abc"
},
{
"id": 456,
"name": "xyz"
}
],
"tests": [
{
"id": 999,
"name": "xxx"
},
{
"id": 0,
"name": "yyy"
}
]
}
}
]
Вы можете обратиться к этому, чтобы узнать больше о контексте фильтра-запроса и Вложенных запросов фильтр