Автозаполнение эластичного поиска вложенных объектов - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь добавить функцию автозавершения для вложенного объекта, который я создал в упругом поиске.

Установленные мной параметры сопоставления:

"mappings": {
    "doc": {
        "object": {
            "type": "nested",
            "properties": {
                "author": {
                    "type": "text",
                    "analyzer": "hebrew"
                },
                "content": {
                    "type": "text",
                    "analyzer": "hebrew"
                },
                "title": {
                    "type": "text",
                    "analyzer": "hebrew"
                }, 
                "suggest" : { "type": "completion"}
            }
       }
   }
}

Я используювложенный объект, потому что я также использую fscrawler для добавления документов json в индекс.

Я использую следующий запрос:

{
    "suggest": {
        "suggester" : {
            "prefix" : "test", 
            "completion" : { 
                "field" : "object.suggest"
            }
        }
    }
}

Но проблема в том, что я не получаю результатовнезависимо от того, что я печатаю.

Правильно ли я установил сопоставления?Или запрос неверный?

1 Ответ

0 голосов
/ 28 июля 2019

В конце концов у меня сработало использование подполя подсказки для каждого поля объекта, с которым я хочу использовать автоматическое предложение, например, если я хочу использовать автоматическое предложение с полями «автор» и «заголовок», тогда яd использовать:

"mappings": {
"doc": {
    "object": {
        "type": "nested",
        "properties": {
            "author": {
                "type": "text",
                "analyzer": "hebrew",
                "fields": {
                    "exact": {
                        "type": "text",
                        "analyzer": "hebrew_exact"
                    },
                    "suggest": {
                        "type": "completion",
                        "analyzer": "simple",
                        "preserve_separators": false,
                        "preserve_position_increments": true,
                        "max_input_length": 50
                    }
                }
            },
            "content": {
                "type": "text",
                "analyzer": "hebrew_exact"
            },
            "title": {
                "type": "text",
                "analyzer": "hebrew",
                "fields": {
                    "exact": {
                        "type": "text",
                        "analyzer": "hebrew_exact"
                    },
                    "suggest": {
                        "type": "completion",
                        "analyzer": "simple",
                        "preserve_separators": false,
                        "preserve_position_increments": true,
                        "max_input_length": 50
                    }
                }
            }
        }
    }
}

И чтобы использовать его, я буду искать в поле: "object.title.suggest" с подсказкой, как в документации.

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