在对ElasticSearch中的字段进行排序时,在同一个字段中对文本和数字进行排序时会出现问题。
我的模式是这样的:“文本/数字/年份/文本”。
我试着按这个分类,但我得到了这样的东西:
"hits": [
{
"_source": {
"fields": {
"numbered": "text/1/year/text",
"numbered-number": "1"
}
},
"sort": [
"1"
]
},
{
"_source": {
"fields": {
"numbered": "text/10/year/text",
"numbered-number": "10"
}
},
"sort": [
"10"
]
},
{
"_source": {
"fields": {
"numbered": "text/11/year/text",
"numbered-number": "11"
}
},
"sort": [
"11"
]
},
...
{
"_source": {
"fields": {
"numbered": "text/19/year/text",
"numbered-number": "19"
}
},
"sort": [
"19"
]
},
{
"_source": {
"fields": {
"numbered": "text/2/year/text",
"numbered-number": "2"
}
},
"sort": [
"2"
]
},好吧,ElasticSearch正在整理这个1,10,11,12,.,19,2,20,21.我怎样才能解决这个问题?我只需要自然的感觉。
更新:
我试过这个剧本,但不太管用。
POST myindex/_search
{
"from": 0,
"size": 40,
"sort": [
{
"_script": {
"type": "string",
"script": {
"inline":
"if ('fields.myfield.sort' =~ /\\d+/) { return Integer.parseInt(doc['fields.myfield.sort'].value); }"
},
"order" : "asc"
}
}
],
"_source": { "include": ["fields.myfield"] }
}错误
"reason": {
"type": "null_pointer_exception",
"reason": nullhttps://stackoverflow.com/questions/45411917
复制相似问题