Я не могу понять, почему мои поисковые запросы чувствительны к регистру. Все, что я прочитал, говорит, что ES по умолчанию нечувствительна. У меня есть сопоставления, которые определяют стандартный анализатор для индексирования и поиска, но кажется, что некоторые вещи по-прежнему чувствительны к регистру - т.е. Подстановочный знак:
"query": {
"bool": {
"must": [
{
"wildcard": {
"name": {
"value": "Rae*"
}
}
}
]
}
Это не работает, но "rae *" работает по желанию. Мне нужно использовать подстановочный знак для поиска типа "начало-с" (я полагаю).
Я использую NEST из приложения .Net и задаю анализаторы при создании индекса таким образом:
var settings = new IndexSettings();
settings.NumberOfReplicas = _configuration.Replicas;
settings.NumberOfShards = _configuration.Shards;
settings.Add("index.refresh_interval", "10s");
settings.Analysis.Analyzers.Add(new KeyValuePair<string, AnalyzerBase>("keyword", new KeywordAnalyzer()));
settings.Analysis.Analyzers.Add(new KeyValuePair<string, AnalyzerBase>("simple", new SimpleAnalyzer()));
В этом случае он использует простой анализатор, но стандартный имеет тот же результат.
Отображение выглядит следующим образом:
name: {
type: string
analyzer: simple
store: yes
}
Кто-нибудь понял, что здесь не так?
Спасибо