Я подсчитал, есть ли способ или настройка для выполнения алфавитного сортировки в поиске elastics. У меня есть поле, и я хочу выполнить сортировку в порядке убывания по нему. Эластичность выполняет его лексикографически. Что я получаю:
Company name
Customer name
company address
Что я хочу получить:
Company name
company address
Customer name
Я обнаружил, что могу создать собственный анализатор, но, может быть, может быть лучший вариант?
используйте multifields для индексации текстового поля как ключевое слово lowercased с полем true, где вы можете сортировать.
{
"settings": {
"analysis": {
"analyzer": {
"keyword_lowercase": {
"tokenizer": "keyword",
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"my_type": {
"properties": {
"text": {
"type": "text",
"fields": {
"raw": {
"type": "text",
"analyzer": "keyword_lowercase",
"fielddata": true
}
}
}
}
}
}
}
запрос
{
"sort": [
{
"text.raw": {
"order": "asc"
}
}
]
}
Огромное спасибо. Наконец я получил свое решение после такой большой борьбы.