В настоящее время получение результата на основе скоринга, но я хочу получить результат на основе скоринга + Статус поля со значением true / false.
Если значение истинно, то необходимо, что приводит к приоритету, но есть вероятность того, что поле статуса не существует во всех индексах.
"query" => [
'bool' => [
'filter' => $filter,
'must' => [
"multi_match" => [
'query' => "$string",
"type" => "cross_fields",
'fields' => ['field1','field2','field3'],
"minimum_should_match" => "80%"
]
]
]
],
"sort" => [
"_score",
[ "status" => ["order" => "desc","unmapped_type" => "boolean"] ]
],
Но появляется ошибка ниже:
[type] => illegal_argument_exception
[reason] => Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [status] in order to load field data by uninverting the inverted index. Note that this can use significant memory.
Любая помощь мне игнорировать индексы, где это поле недоступно, или какое-либо другое решение этой проблемы?