从 Elasticsearch 5.0 升级到 Elasticsearch 6.4 后,我在使用排序时收到以下警告:
!弃用:[nested_path] 已被弃用,取而代之的是 [nested] 参数
!弃用:[nested_filter] 已被弃用,取而代之的是 [nested] 参数
使用 ongr/elasticsearch-dsl 时,我的排序查询如下所示:
"sort": [
{
"_channels._showOrder": {
"nested_path": "_channels",
"order": "asc",
"nested_filter": {
"term": {
"_channels.id": 1658
}
}
}
}
],
在 Elasticsearch 6.4 中,它应该如下所示:
"sort" : [
{
"_channels._showOrder" : {
"order" : "asc",
"nested": {
"path": "_channels",
"filter": {
"term" : { "_channels.id" : 1658 }
}
}
}
}
]
似乎需要更新 FieldSort 以支持新结构。当前用于 FieldSort 的 setNestedFilter 使用不推荐使用的语法。
它仍然有效,但我不喜欢收到弃用警告,并且在某些时候它可能会引发错误。