Реализовать подсказку завершения для полей на сервере elasticsearch.

Я пытаюсь внедрить подсказку завершения в свои поля на сервере elasticsearch. Когда я пытаюсь выполнить команду curl

curl -X POST localhost:9200/anisug/_suggest?pretty -d '{
 "test" : {
    "text" : "n",
    "completion" : {
        "field" : "header"
    }
}
}'

Я получаю исключение:

ElasticSearchException [Поле [заголовок] не является полем предложения завершения].

Что я упускаю?


person rudd0211    schedule 31.10.2013    source источник
comment
Завершение не работает с универсальными полями, оно работает только с полями завершения типа, поэтому сначала необходимо настроить сопоставление.   -  person Tor    schedule 27.08.2015


Ответы (1)


Я думаю, что при определении сопоставления anisug вам нужно будет установить поле заголовка для предложения завершения. Например, вы можете использовать это

curl -X PUT localhost:9200/anisug/_mapping -d '{
  "test" : {
        "properties" : {
            "name" : { "type" : "string" },
            "header" : { "type" : "completion",
                          "index_analyzer" : "simple",
                          "search_analyzer" : "simple",
                          "payloads" : true
            }
         }
    }
}'

Точно так же при индексировании данных вам потребуется отправить дополнительную информацию о завершении. Для получения дополнительной информации посетите эту ссылку.

person aash    schedule 31.10.2013