В основном структура json для поля выглядит следующим образом:
"myflag": {
"type": "text",
"fields": {
"raw": {
"type": "keyword",
"normalizer": "case_insensitive"
}
}
}
Если у меня есть эти 5 записей:
A
a
B
C
они будут отсортированы правильно, что означает:
A
a
B
C
И 1 строка с пустым значением.
Однако, похоже, что пустая строка (вполне уверенная в этом) не установлена. Это ноль или неопределенный.
В этом случае сортировка работает хорошо.
Но как только я изменю пустую строку со значением и ТОГДА очищу его, сортировка будет неправильной.
Так, например, в приведенном выше примере я установил значение для пустого значения, поэтому в конце в дБ у меня есть это:
A
a
B
Z
C
Сортировка все равно будет правильной, показывая:
A
a
B
C
Z
Но как только я очищу значение в записи, эта запись будет первой в списке. Поэтому, если я очищу значение бывшего Z, сортировка даст мне:
(EMPTY)
A
a
B
C
ПУСТОЙ ряд стал первым.
Есть ли еще один параметр, который необходимо добавить в схему?
Запуск
http://127.0.0.1:9200/tambur/_settings
дает это:
analysis: {
normalizer: {
case_insensitive: {
filter: "lowercase"
}
}
}