ElasticsearchIllegalArgumentException[подсказка [завершение] требует настройки контекста]
Я использую Elastic Search для реализации поля автозаполнения для индекса с именем people:
Отображение, как показано ниже для поля person_name_suggest
-
person_name_suggest: {
type: "completion",
analyzer: "simple",
payloads: true,
preserve_separators: true,
preserve_position_increments: true,
max_input_length: 50,
context: {
office_scope: {
type: "category",
path: "office_scope",
default: [
"0"
]
}
}
},
Запрос, который мне нужен для эластичного поиска, выглядит следующим образом:
{
"suggest":{
"suggestions":{
"text":"M","
completion":{
"field":"person_name_suggest",
"context":890,
"size":10
}
}
}
}
Я получаю следующую ошибку - "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[OsbgjmewT569a-7ZoNCMtg][people_2016_10_29][0]: SearchParseException[[people_2016_10_29][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"suggest":{"suggestions":{"text":"M","completion":{"field":"person_name_suggest","context":890,"size":10}}}}]]]; nested: ElasticsearchIllegalArgumentException[suggester [completion] requires context to be setup]; }
Из того, что я вижу, я правильно настроил подсказку для завершения.
Может ли кто-нибудь указать мне правильное направление?
Используемая версия ElasticSearch: 1.6
1 ответ
В запросе есть синтаксическая ошибка. Вы должны указать название контекста
Попробуй это
{
"suggest":{
"suggestions":{
"text":"M","
completion":{
"field":"person_name_suggest",
"context":{"office_scope":890},
"size":10
}
}
}
}