2017-06-06 78 views
1

你好,这是我从弹性搜索弹性排序不工作

"table":{ 
    "data":[ 
     { 
     "label":"First Label", 
     "value":"10" 
     }, 
     { 
     "label":"1st Label", 
     "value":"9" 
     } 
    ], 
    "details":"Examples set on MSRP, your actual payment may vary based on price set by dealer." 
} 

输出样本,我希望到这个排序在升序排列,无论是通的colunm标签或通过价值。

我试着搜索选项

sort = [{"data.label" : {"order" : "asc", "mode" : "min", "nested_path" : "data"}}]; 
sort = [{ "table.data": {"order": "asc"}] 

但是,我没有得到预期的排序结果

任何帮助,将不胜感激

回答

0

查询您的分类部分应是 -

"sort": { "label": { "order": "desc" }} 

"sort": { "value": { "order": "desc" }} 

"sort": [ 
     { "label": { "order": "desc" }}, 
     { "value": { "order": "desc" }} 
    ] 

下面是映射,文档和随后的查询来获取内排序的元素。

PUT /table 
{ 
    "mappings": { 
    "data": { 
     "properties": { 
     "name": {"type": "string"}, 
     "subjects": { 
      "type": "nested", 
      "properties": { 
      "name": { "type": "string"}, 
      "marks":{ "type": "integer"} 
      } 
     } 
     } 
    } 
    } 
} 

PUT /table/data/1?pretty 
{ 
    "name":"Ram", 
    "subjects":[ 
    { 
     "name":"English", 
     "marks":13 
    }, 
    { 
     "name":"Hindi", 
     "marks":12 
    } 
    ] 
} 
PUT /table/data/2?pretty 
{ 
    "name":"Sam", 
    "subjects":[ 
    { 
     "name":"Biology", 
     "marks":83 
    }, 
    { 
     "name":"Maths", 
     "marks":68 
    } 
    ] 
} 

PUT /table/data/3?pretty 
{ 
    "name":"Jim", 
    "subjects":[ 
    { 
     "name":"Chemistry", 
     "marks":96 
    }, 
    { 
     "name":"Geology", 
     "marks":58 
    } 
    ] 
} 

GET table/data/_search 
{ 
"query":{ 
    "nested":{ 
    "path":"subjects", 
    "query": { 
     "match_all": {} 
     }, 
    "inner_hits":{ 
     "sort":{ 
     "subjects.marks":{ 
      "order":"asc" 
     } 
     } 
    } 
    } 
} 
} 
+0

我试过所有的组合,它不工作。我们应该去嵌套排序吗? – Arjun

+0

你能否提出你正在制作的完整查询! –

+0

请查询网址 - /_search?q =“{”filtered“:{”filter“:{”bool“:{”must“:[{”ids“:{”values“:[”search_key“ ]}}}}“&sort = {”value“:{”order“:”asc“}} – Arjun