Случайный поиск в ElasticSearch - PullRequest
1 голос
/ 14 марта 2019

Я столкнулся с проблемой поиска по электронной почте.Электронная почта имеет ключевое слово тип.Некоторые пользователи добавляют письмо с заглавными буквами, поэтому я не могу найти их все с помощью конструкции term .Локально я пытался изменить ключевое слово на текст , но появилась новая проблема.Пример: поиск по электронной почте@gmail.com - эластик разбивает это письмо на несколько частей и возвращает неправильные результаты: электронная почта@site.com, new@gmail.com и т. Д. Каков наилучший способ поиска с помощью эластика?(было бы лучше избежать полного переиндексации)

ElasticSearch 6.6.1

"mappings": {
        "_doc": {
            "properties": {
                "email": {
                    "type": "text"
                }

1 Ответ

1 голос
/ 14 марта 2019

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

Для анализатора в вашем случае должна быть строчная буква.

    "analyzer":{
      "analyzer_lowcase":{
        "tokenizer":"keyword",
        "filter":"lowercase"
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...