У меня есть документ, который содержит массивы.Один из массивов верхнего уровня, key_values
, содержит объекты.Эти объекты внутри массива имеют еще два объекта с именами key
и value
.Я хотел бы сделать нечеткий запрос к полю с именем text
внутри этих key
и value
объектов.Оба запроса должны совпадать.Пока мой запрос ничего не возвращает.
Отображение
{
"properties": {
"key_values": {
"type": "nested",
"properties": {
"key": {
"properties": {
"text": {
"type": "keyword"
}
}
},
"value": {
"properties": {
"text": {
"type": "keyword"
}
}
}
}
}
}
}
Пример данных
{
"key_values": [
{
"key": {
"text": "First name:"
},
"value": {
"text": "Muriel"
}
}
...
]
}
Запрос
{
"query": {
"nested": {
"path": "key_values",
"query": {
"bool": {
"must": [
{
"match": {
"key_values.key.text": {
"query": "First name",
"fuzziness": "AUTO"
}
}
},
{
"match": {
"key_values.value.text": {
"query": "Muriel",
"fuzziness": "AUTO"
}
}
}
]
}
}
}
}
}
РЕДАКТИРОВАТЬ: я нашел решениек моей проблеме.Мне пришлось сделать запрос типа nested
, и путь последнего запроса на совпадение был неверным.Я обновил запрос до правильного.