我試圖對兩個字段進行排序,一個是日期字段,另一個是整數字段。我已經驗證字段映射正確,並且所有索引文檔的值都具有正確的數據類型,但每次我嘗試按數字字段進行排序時,I ES都會返回一個異常[java.lang.NumberFormatException:無效的移位prefixCoded字節中的值(編碼值真的是INT?)]。Elasticsearch NumberFormatException按數字和日期字段進行排序時
奇怪的是,它返回的結果,他們似乎被正確排序,所以我不完全確定這是什麼效果,但我知道我不應該在響應中的任何錯誤。
這裏是一個映射:
這裏是拋出異常的查詢:
POST /blcdt.products/review_143758/_search?pretty=true
{
"query": {
"filtered": {
"filter": [
{
"term": {
"review_category": "Game Reviews"
}
}
]
}
},
"from": 0,
"size": 8,
"sort": [
{
"review_type_priority": {
"order": "desc"
}
},
{
"date_reviewed": {
"order": "desc"
}
}
],
"fields": [
"review_title",
"review_type",
"score"
]
}
,這裏是從ES縮寫響應:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 1,
"failed": 4,
"failures": [
{
"index": "blcdt.products",
"shard": 2,
"status": 500,
"reason": "QueryPhaseExecutionException[[blcdt.products][2]: query[filtered(ConstantScore(cache(review_category:Game Reviews)))->cache(_type:review_143758)],from[0],size[8],sort[<custom:\"review_type_priority\": org.elasticse[email protected]44ecbc5>!,<custom:\"date_reviewed\": org.elasticse[email protected]5123f4b8>!]: Query Failed [Failed to execute main query]]; nested: ElasticsearchException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: UncheckedExecutionException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: NumberFormatException[Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; "
},
{
"index": "blcdt.products",
"shard": 3,
"status": 500,
"reason": "QueryPhaseExecutionException[[blcdt.products][3]: query[filtered(ConstantScore(cache(review_category:Game Reviews)))->cache(_type:review_143758)],from[0],size[8],sort[<custom:\"review_type_priority\": org.elasticse[email protected]281d24cc>!,<custom:\"date_reviewed\": org.elasticse[email protected]115ae1a7>!]: Query Failed [Failed to execute main query]]; nested: ElasticsearchException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: UncheckedExecutionException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: NumberFormatException[Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; "
},
{
"index": "blcdt.products",
"shard": 4,
"status": 500,
"reason": "QueryPhaseExecutionException[[blcdt.products][4]: query[filtered(ConstantScore(cache(review_category:Game Reviews)))->cache(_type:review_143758)],from[0],size[8],sort[<custom:\"review_type_priority\": org.elasticse[email protected]41238b2a>!,<custom:\"date_reviewed\": org.elasticse[email protected]48593cf>!]: Query Failed [Failed to execute main query]]; nested: ElasticsearchException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: UncheckedExecutionException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: NumberFormatException[Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; "
},
{
"index": "blcdt.products",
"shard": 0,
"status": 500,
"reason": "QueryPhaseExecutionException[[blcdt.products][0]: query[filtered(ConstantScore(cache(review_category:Game Reviews)))->cache(_type:review_143758)],from[0],size[8],sort[<custom:\"review_type_priority\": org.elasticse[email protected]1cbd767c>!,<custom:\"date_reviewed\": org.elasticse[email protected]5aadd5a1>!]: Query Failed [Failed to execute main query]]; nested: ElasticsearchException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: UncheckedExecutionException[java.lang.NumberFormatException: Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; nested: NumberFormatException[Invalid shift value in prefixCoded bytes (is encoded value really an INT?)]; "
}
]
},
"hits": {
"total": 41,
"max_score": null,
"hits": [
{
"_index": "blcdt.products",
"_type": "review_143758",
"_id": "599606",
"_score": null,
"fields": {
"score": [
8
],
"review_type": [
"review"
],
"review_title": [
"Entwined review"
]
},
"sort": [
100,
1403648392
]
},
...
{
"_index": "blcdt.products",
"_type": "review_143758",
"_id": "452429",
"_score": null,
"fields": {
"score": [
9
],
"review_type": [
"review"
],
"review_title": [
"Dark Souls II review"
]
},
"sort": [
100,
1394840094
]
}
]
}
}
您發送給ES的數據類型是什麼? – Ashalynd
看看這個:http://elasticsearch-users.115913.n3.nabble.com/Number-Format-Exception-td1474946.html –
你的索引中是否有多個類型? –