elasticsearch - Elasticsearch 嵌套过滤器排序
问题描述
我想按特定的数组字段对我的数据进行排序。
我有产品和类别。一种产品可以有多个类别。产品类别匹配对我的产品进行排序有其自己的优先级。
[{
"title":"Product 1",
"categories": [{
"title": "Category 1",
"pivot": {
"priority": 10
}
}, {
"title": "Category 2",
"pivot": {
"priority": 3
}
},{
"title": "Category 3",
"pivot": {
"priority": 8
}
},{
"title": "Category 4",
"pivot": {
"priority": 2
}
}
]
},{
"title":"Product 2",
"categories": [{
"title": "Category 1",
"pivot": {
"priority": 3
}
}, {
"title": "Category 2",
"pivot": {
"priority": 8
}
},{
"title": "Category 3",
"pivot": {
"priority": 2
}
},{
"title": "Category 4",
"pivot": {
"priority": 6
}
}
]
}
]
我想按“类别 1”列出我的产品并按优先级对其进行排序。我做了如下查询。(我只在排序内部分享)
{
"categories.pivot.priority": {
"order": "asc",
"nested_path": "categories",
"nested_filter": {
"term": {
"categories.title.keyword": "Category 1"
}
}
}
但是当我成功时,它会返回
[{"type":"query_shard_exception","reason":"[nested] nested object under path [categories] is not of nested
无法理解它有什么问题。
解决方案
推荐阅读
- android-studio - 有没有办法在没有 vpn 的情况下创建一个新的颤振项目?
- jquery - 在 contenteditable 中交替字体颜色
- python - 使用正则表达式在python中的数据框或列中的大写字母之前添加空格
- sql - 错误 1022:无法写入;表 '#sql-209c_8' SQL 语句中的重复键:
- php - 选项数据未在数据库中更新
- macos - 在本地无法在本地访问的 mac os 上设置 presto 服务器
- apache-beam - 关于 Apache Beam 窗口化策略的建议
- android - 在我的 android 应用程序中 Font Acme 在 xml 中完美显示,但在我运行应用程序时无法正常工作
- input - Svelte - 绑定输入
- python-3.x - 导入张量流的问题