首先,你需要確保你的popRank
字段映射爲float
而不是string
curl -XGET localhost:9200/your_index/_mapping/your_type?fields=popRank
應該回到你:
{
"your_index" : {
"mappings" : {
"your_type" : {
"properties" : {
"popRank" : {
"type" : "float" <---- "float" MUST appear here and NOT "string"
}
}
}
}
}
}
我們可以測試浮動很單純地喜歡這個排序。首先,讓我們創建一個測試指標:
curl -XPOST localhost:9200/test -d '{
"mappings": {
"test": {
"properties": {
"popRank": {
"type": "float"
}
}
}
}
}'
然後我們在整個光譜增加了一些文檔popRank
。
curl -XPOST localhost:9200/test/test/_bulk -d '
{"index": {"_id": 1}}
{"popRank": 123}
{"index": {"_id": 2}}
{"popRank": -157}
{"index": {"_id": 3}}
{"popRank": 1234}
{"index": {"_id": 4}}
{"popRank": 0}
{"index": {"_id": 5}}
{"popRank": -310}
{"index": {"_id": 6}}
{"popRank": 332}
{"index": {"_id": 7}}
{"popRank": -10}
'
最後,我們可以用
curl -XPOST localhost:9200/test/test/_search -d '{
"sort": {
"popRank": {
"unmapped_type": "float",
"order": "desc"
}
},
"query": {"match_all": {}}
}'
動搖了這一點,在結果中,我看到popRank
正確排序的所有文件,即1234, 332, 123, 0, -10, -157, -310
因此,請確保您的popRank
場並沒有被索引爲string
,因爲如果是這種情況,上面的示例文檔將按照如下排序:332, -310, -157, 1234, 123, -10, 0
,這似乎正在發生在你的情況。
來源
2015-08-22 03:49:24
Val
看起來像是一個詞典排序檢查映射是'popRank'類型'浮動'或'字符串? – keety