按嵌套文档之一中的值对文档进行排序

按嵌套文档之一中的值对文档进行排序,第1张

嵌套文档之一中的值对文档进行排序

看起来您构建嵌套过滤器的方式不正确。您在这里列出的内容也不适合我。

但是当我替换这个:

"sort": [    {      "children.size": {        "order": "asc",        "nested_filter": {          "nested": { "filter": {   "term": {     "id": 1   } }, "path": "children"          }        }      }    }]

有了这个:

"sort": [   {      "children.size": {         "order": "desc",         "nested_filter": { "term": {    "id": 1 }         }      }   }]

有效。

更准确地说,我建立了索引并添加了数据:

DELETE /test_indexPUT /test_index/{    "settings": {        "number_of_shards": 1,        "number_of_replicas": 0    }}PUT /test_index/item/_mapping{   "item": {      "properties": {         "name": { "type": "string", "store": "yes"         },         "children": { "properties": {    "name": {       "type": "string",       "store": "yes"    },    "id": {       "type": "integer",       "store": "yes"    },    "size": {       "type": "integer",       "store": "yes"    } }, "type": "nested"         }      }   }}PUT /test_index/item/1{"name":"item1","children":[{"id":11,"size":15},{"id":3,"size":6}]}PUT /test_index/item/2{"name":"item2","children":[{"id":1,"size":2},{"id":3,"size":6}]}PUT /test_index/item/3{"name":"item3","children":[{"id":1,"size":7},{"id":3,"size":36}]}PUT /test_index/item/4{"name":"item4","children":[{"id":1,"size":11},{"id":3,"size":16}]}

然后使用进行搜索,如下所示,

"order": "desc"
它似乎可以正常运行:

POST /test_index/item/_search{   "query": {      "filtered": {         "query": { "match_all": {}         },         "filter": { "nested": {    "filter": {       "term": {          "id": 1       }    },    "path": "children" }         }      }   },   "sort": [      {         "children.size": { "order": "desc", "mode": "avg", "nested_filter": {    "term": {       "id": 1    } }         }      }   ]}...{   "took": 2,   "timed_out": false,   "_shards": {      "total": 1,      "successful": 1,      "failed": 0   },   "hits": {      "total": 3,      "max_score": null,      "hits": [         { "_index": "test_index", "_type": "item", "_id": "4", "_score": null, "_source": {    "name": "item4",    "children": [       {          "id": 1,          "size": 11       },       {          "id": 3,          "size": 16       }    ] }, "sort": [    11 ]         },         { "_index": "test_index", "_type": "item", "_id": "3", "_score": null, "_source": {    "name": "item3",    "children": [       {          "id": 1,          "size": 7       },       {          "id": 3,          "size": 36       }    ] }, "sort": [    7 ]         },         { "_index": "test_index", "_type": "item", "_id": "2", "_score": null, "_source": {    "name": "item2",    "children": [       {          "id": 1,          "size": 2       },       {          "id": 3,          "size": 6       }    ] }, "sort": [    2 ]         }      ]   }}

这是我使用的代码:

http://sense.qbox.io/gist/1582560ed13bec82dc321944a639336ad7ae6a60



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4982909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存