我试图对两个字段进行排序,一个是日期字段,另一个是整数字段。我已经验证字段映射正确,并且所有索引文档的值都具有正确的数据类型,但每次我尝试按数字字段进行排序时,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 –
你的索引中是否有多个类型? –