Нечеткий запрос Elasticsearch на двух полях объекта - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть документ, который содержит массивы.Один из массивов верхнего уровня, 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, и путь последнего запроса на совпадение был неверным.Я обновил запрос до правильного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...