Akr*_*res 5 nested elasticsearch
我正在使用以下映射:
PUT /my_index
{
"mappings": {
"blogpost": {
"properties": {
"title": {"type": "string"}
"comments": {
"type": "nested",
"properties": {
"comment": { "type": "string" },
"date": { "type": "date" }
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
文件示例:
PUT /my_index/blogpost/1
{
"title": "Nest eggs",
"comments": [
{
"comment": "Great article",
"date": "2014-09-01"
},
{
"comment": "More like this please",
"date": "2014-10-22"
},
{
"comment": "Visit my website",
"date": "2014-07-02"
},
{
"comment": "Awesome",
"date": "2014-08-23"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何检索此文档并按"日期"对嵌套对象"注释"进行排序?结果:
PUT /my_index/blogpost/1
{
"title": "Nest eggs",
"comments": [
{
"comment": "Awesome",
"date": "2014-07-23"
},
{
"comment": "Visit my website",
"date": "2014-08-02"
},
{
"comment": "Great article",
"date": "2014-09-01"
},
{
"comment": "More like this please",
"date": "2014-10-22"
}
]
}
Run Code Online (Sandbox Code Playgroud)
你需要sort在inner_hits上对它进行排序nested objects.这将为您提供所需的输出
GET my_index/_search
{
"query": {
"nested": {
"path": "comments",
"query": {
"match_all": {}
},
"inner_hits": {
"sort": {
"comments.date": {
"order": "asc"
}
},
"size": 5
}
}
},
"_source": [
"title"
]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用源过滤来获取仅"title"在comments内部检索,inner_hit但如果你想要你可以避免
size 是5因为默认值是3,我们在给定的例子中有4个对象.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
3103 次 |
| 最近记录: |