目前,根据评分获取结果,但我想做的是我想要一个基于 评分 + 字段状态的结果,值为 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.
有人帮我忽略该字段不可用的索引或解决此问题的任何其他解决方案吗?
原文由 jilesh 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如聊天中所讨论的那样,这个问题是由于@jilesh而发生的
忘记删除旧的索引映射,只更新正在发生的数据。
当您通过正确的设置遇到以下错误时,以下答案是相关的
在这种情况下,如果您想消除错误,请启用字段上的字段数据,但要注意它可能会导致性能问题。
在官方网站上阅读更多关于现场数据的信息。
您可以在映射中的
order
字段中启用它,如图所示。