這是我的映射片段
{
"mappings": {
"properties": {
"files": {
"type": "nested",
"properties": {
"name": {
"type": "keyword",
"index": true
},
"type": {
"type": "keyword",
"index": true
},
"size": {
"type": "keyword",
"index": true
},
"version": {
"type": "keyword",
"index": true
}
}
}
}
}
}
這是我的檔案資料片段,
{
"_index": "files_v1",
"_type": "_doc",
"_id": "1",
"_score": null,
"_source": {
"hdd-size": "256GB",
"files": [
{
"name": "AllOrNothing",
"type": "pdf",
"size": "1mb",
"version": "1"
},
{
"name": "FallOrNothing",
"type": "zip",
"size": "2mb",
"version": "2"
},
{
"name": "ZeroOrNothing",
"type": "txt",
"size": "1mb",
"version": "2"
}
]
}
}
現在,如果我需要在基于諸如“名稱”或“型別”之類的欄位甚至諸如“名稱”asc 和“型別”desc 之類的欄位查詢檔案時對搜索結果進行排序,我無法這樣做。
我在下面嘗試過但失敗了,
"sort": [{
"files.name": {
"order": "asc",
"nested_path": "files"
}
}]
請建議我在這里缺少什么!先感謝您。
uj5u.com熱心網友回復:
嵌套過濾器回傳包含所有嵌套欄位的檔案。要對匹配的嵌套檔案進行排序,您需要在排序檔案中指定嵌套過濾器。
{
"files.name": {
"order": "asc",
"nested": {
"path": "files",
"filter": { ---> you can use bool to combine complex queries
"term": {
"files.type": "txt"
}
}
}
}
}
要在 inner_hits 中對檔案進行排序,請使用以下
"inner_hits":{
"sort": [
{
"nested.name": {
"order": "asc"
}
}
]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526377.html
標籤:排序弹性搜索-7
下一篇:每條記錄的順序編號
