Нечувствительность к регистру не работает

Я не могу понять, почему мои поиски чувствительны к регистру. Все я've read говорит, что по умолчанию ES нечувствителен. У меня есть сопоставления, которые задают стандартный анализатор для индексации и поиска, но кажется, что некоторые вещи все еще чувствительны к регистру - например, подстановочный знак:

"query": {
"bool": {
  "must": [
    {
      "wildcard": {
        "name": {
          "value": "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("keyword", new KeywordAnalyzer()));
  settings.Analysis.Analyzers.Add(new KeyValuePair("simple", new SimpleAnalyzer()));

В этом случае этос использованием простого анализатора, но стандартный анализатор дает тот же результат.

Отображение выглядит так:

name: {
    type: string
    analyzer: simple
    store: yes
}

У кого-нибудь есть идеи, что здесь не так?

Спасибо

 myusuf15 июл. 2016 г., 12:47
С более новой версией ES (2.3) вы можете использовать Completion Suggester для этого.
 Telebh16 мар. 2017 г., 19:27
У меня та же проблема. даже когда попробовалСтрока запроса" это не работает в ES 5.1, но это работало в 2.3. !!!!

Ответы на вопрос(1)

Решение Вопроса

документация,"

[Подстановочный запрос] сопоставляет документы, поля которых соответствуют подстановочному выражению(не проанализировано) ".

Посколькупоисковый термин не анализируется, вы'По сути, вам нужно будет выполнить анализ самостоятельно, прежде чем создавать поисковый запрос. В этом случае это просто означает, что ваш поисковый запрос должен быть в нижнем регистре. В качестве альтернативы вы можете использовать:query_string

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "name:Rae*"
          }
        }
      ]
    }
  }
}
 Edward18 дек. 2018 г., 02:42
Я нене знаю, если это хорошая идея использовать query_string, нет, что низкий уровень фн?
 Jonesie25 июн. 2013 г., 02:10
ДА ДА ДА !!! Огромное спасибо.

Ваш ответ на вопрос