Я создал регистрозависимость анализатор, какУпругое поле поиска сортировать, содержащее специальные символы и цифру alpahbets
PUT /dhruv3
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"analyzer_keyword": {
"tokenizer": "keyword",
"filter": [ "lowercase", "asciifolding" ]
}
}
}
}
},
"mappings": {
"test": {
"properties": {
"about": {
"type": "string",
"analyzer": "analyzer_keyword"
},
"firsName": {
"type": "string"
}
}
}
}
}
и использовал ее в отображении. О поле должно содержать Aplha numerc и специальный characters.Then я вставил несколько значений с about
поле
1234, `приятелем, приятель, ~ приятелем
. Кроме поиска, мне нужно получить результат сортировки. Поиск работает хорошо , но когда я пытаюсь отсортировать их
GET dhruv/test/_search
{
"sort": [
{
"about": {
"order": "asc"
}
}
]
}
Я получаю результаты в о поле как
1234, `приятелем, приятель, ~ дружок
. Но я ожидаю, что они станут первыми специальными персонажами, а затем цифрами, а затем алфавитами.
Я сделал некоторые домашние работы и узнал, что это из-за их значений ASCII. Я искал интернет и пытался даже asciifolding
. Но не получилось. Я знаю, что есть какое-то решение, но я не могу понять. Прошу вас, направьте меня
Проверьте, что делает этот анализатор для вашего текста, используя конечную точку [_analyze endpoint] (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-analyze.html). Я думаю, что последние три будут рассматриваться как «приятель». Вам не нужен анализ, кроме фильтра символов, например [Mapping Char Filter] (https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-mapping-charfilter.html), чтобы вы может сопоставить специальные символы с тем, что гарантирует, что такая строка будет первой. – eemp