我遇到了字符串不能按数字排序的问题。例如,10〈8而不是8〈10,我目前不能将字符串转换为整数,因为字符串的其他部分是文字字符串。如果数字小于10,我希望在前面附加一个0。如果不使用脚本,我如何实现这一点?
f4t66c6m1#
我会建议使用下面的查询与排序有脚本。这将是最好的工作相比,追加前导0的值。您可以将ID.keyword替换为字段名称。
ID.keyword
{ "query": { "match_all": {} }, "sort": { "_script": { "type": "Number", "order": "desc", "script": { "lang": "painless", "source": "Long.parseLong(doc['ID.keyword'].value)" } } } }
如果您有整数值,则也可以使用Integer.parseInt(doc['ID.keyword'].value)。
Integer.parseInt(doc['ID.keyword'].value)
1条答案
按热度按时间f4t66c6m1#
我会建议使用下面的查询与排序有脚本。这将是最好的工作相比,追加前导0的值。
您可以将
ID.keyword
替换为字段名称。如果您有整数值,则也可以使用
Integer.parseInt(doc['ID.keyword'].value)
。