Elasticsearch пользовательский анализатор - PullRequest
0 голосов
/ 26 мая 2019

Можно ли создать собственный анализатор эластичного поиска, который может разбивать индекс по пробелам, а затем создавать два токена?Один со всем перед космосом и второй со всем.Например: я сохранил запись с полем, которое имеет следующий текст: «35 G».Теперь я хочу получить эту запись, набрав в этом поле только запрос «35» или «35 G».Столь эластичный должен создать два токена: ['35', '35 G '] и не более.

Если это возможно, как этого добиться?

1 Ответ

1 голос
/ 26 мая 2019

Выполняется с помощью path_hierarchy токенизатора .

PUT test
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "path_hierarchy",
          "delimiter": " "
        }
      }
    }
  }
  ...
}

А теперь

POST test/_analyze
{
  "analyzer": "my_analyzer",
  "text": "35 G"
}

выходы

{
  "tokens": [
    {
      "token": "35",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 0
    },
    {
      "token": "35 G",
      "start_offset": 0,
      "end_offset": 4,
      "type": "word",
      "position": 0
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...