У меня есть индекс (имя: "index1"), указывающий на несколько документов в ElasticSearch.
Формат (json) документа - -
{
"_index": "index1",
"_type": "someType",
"_id": "randomIDBlahBlah",
"_source": {
"version": "2018",
"fields": [
{
"field": "A.B",
"lineNumber": 1
},
{
"field": "C.D",
"lineNumber": 2
},
{
"field": "A.E",
"lineNumber": 3
}]
},
"fields": {
"created": [
"2017-01-19T20:11:07.977Z"
]
},
"sort": [
2324343
]
}
Вот отображение-
{
"index1": {
"mappings": {
"mapping": {
"properties": {
"branch": {
"type": "text"
},
"created": {
"type": "date"
},
"fields": {
"type": "nested",
"properties": {
"field": {
"type": "text"
},
"lineNumber": {
"type": "integer"
}
}
}
}
}
}
}
}
Аналогично, в этом индексе есть несколько документов одного формата, но разные данные поля.
Теперь я пытаюсь выполнить упомянутый ниже упругий поиск в определенном поле.(здесь - AB), он дает мне все результаты из всех документов, как будто это поиск по всем полям.
Я хочу видеть только этот конкретный результат поля, а не все результаты.
Это мой запрос ES -
POST index1/_search
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"nested": {
"path": "fields",
"query": {
"match_phrase": {
"fields.field": "A.B"
}
}
}
}
]
}
}
]
}
}
}
Где я ошибаюсь в запросе ES?