Поле
скрипта может использоваться для сортировки текста по длине. Лучшим вариантом было бы также проиндексировать длину текста и отсортировать по этому полю.
Данные:
"hits" : [
{
"_index" : "index16",
"_type" : "_doc",
"_id" : "QNLN5HEB9UrRQjNWOLGw",
"_score" : 1.0,
"_source" : {
"model" : "Acer Aspire 3 A315-42 aa"
}
},
{
"_index" : "index16",
"_type" : "_doc",
"_id" : "QdLN5HEB9UrRQjNWQLFu",
"_score" : 1.0,
"_source" : {
"model" : "Acer Aspire 3 A315-42"
}
}
]
Запрос:
{
"query": {
"match": {
"model": "Acer Aspire 3 A315-42"
}
},
"sort": [
{
"_script":{
"script": "doc['model.keyword'].value.length()",-->script to return length
"type": "number",
"order": "desc"
}
}
],
"size": 1 --> top 1
}
Результат:
"hits" : [
{
"_index" : "index16",
"_type" : "_doc",
"_id" : "QNLN5HEB9UrRQjNWOLGw",
"_score" : null,
"_source" : {
"model" : "Acer Aspire 3 A315-42 aa"
},
"sort" : [
25.0
]
}
]