我有一个字符串类型的字段。它总是违反数字
"id": {
"type": "string",
"analyzer": "case_insensitive_sort"
}
例如12、111、113、2。但是我不能将现场类型更改为nuber
我如何在不将id
更改为另一种类型的情况下排序也许在ES中存在一些分类?
您可以使用它来对存储在字符串中的数字进行排序。它对我有用。
//Order to sort the list. Can be fetched as an input field
var sortOrder= "asc";
var sortDescriptor = new SortScriptDescriptor<MyDocument>();
//Query to sort which can be customised
var sortQuery = sortDescriptor
.Type("number")
.Order(sortOrder == "asc" ? Nest.SortOrder.Ascending : Nest.SortOrder.Descending).Script(sc => sc
.Source("Float.parseFloat(doc["numbered-number"].value)"));
var result = client.Search<MyDocument>(s => s
.Index("yourIndexName")
.Sort(so => sortQuery)
);