2013-08-05 53 views
2

我ElasticSearch查询与排序不排序:ElasticSearch不会排序

{ 
    "query": { 
    "match_all": {} 
    }, 
    "sort": [ 
    { 
     "id": { 
     "order": "desc" 
     } 
    } 
    ] 
} 

添加“排序”并没有不同之处在于每一个结果现在有一个附加属性

sort: [0] 
任何影响

它看起来像“排序”属性是0,因此结果的顺序不会改变。

“id”是我索引中文档的实际属性。将其更改为“idFOOBAR”会抛出“[找不到[idFOOBAR]的映射以进行排序]”,因此它似乎识别该属性。还尝试了其他属性,如“userId”等,结果相同。

我错过了什么吗?

回答

2

将属性映射从index="no"修改为index="not_analyzed"修复了它。

+0

我遇到同样的问题。你能解释一下你是如何改变属性映射的吗?这是'ElasticSearch'节点的属性吗? – Joe

+0

你已经有了一个映射吗? http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html – Max

+1

没关系,我明白了。我创建了索引:POST {“mappings”:{“”:{“properties”:{“”:{“type”:“”,“index”:“not_analyzed”}}}} 。不管怎么说,还是要谢谢你! – Joe