Да, это действительно сбивает с толку.
По мере того, как вы читаете документацию, есть одно главное отличие с подсказкой контекста в том, что он избегает полного сканирования Inded. Следовательно, контекст является обязательным параметром в запросе суггестера.
Есть ли способ использовать один контекст для усиления, а не фильтрации?
Нет. Только в качестве ускорения нет способа.
Чтобы достичь того, что нужно, - это один способ, своего рода взлом. Поскольку вы уже знаете список контекстов, вам необходимо предоставить всем контекстам в контекстном запросе различные усиления. Тогда это своего рода усиление всех контекстов.
POST place/_search?pretty
{
"suggest": {
"place_suggestion" : {
"prefix" : "tim",
"completion" : {
"field" : "suggest",
"size": 10,
"contexts": {
"place_type": [
{ "context" : "cafe", boost:1},
{ "context" : "restaurants", "boost": 2 }
]
}
}
}
}
}
Здесь я установил усиление для обоих контекстов. Затем он включает все контексты и списки по ускорению.
Опять же, если термин присутствует во многих контекстах, приоритет получает контекст с максимальной оценкой.
Примечание: Примеры взяты из документации.