Как настроить отображение для текстовых полей типа ключевого слова в Elasticsearch? - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть поле «Категория», и мне нужно настроить отображение для него, чтобы я мог использовать его только в запросах на уровне терминов.

Я видел такой подход:

"category": {
  "type": "text",
  "fields": {
    "keyword": {
      "type": "keyword"
    }
  }
}

иДругой - с помощью анализатора «ключевое слово»:

"category": {
        "type": "text",
        "analyzer": "keyword"
}

Мой вопрос: в чем разница между этими двумя сопоставлениями и как я могу настроить текстовое поле для запросов на уровне терминов ??

1 Ответ

0 голосов
/ 23 декабря 2018
   "category": {
     "type": "text",
       "fields": {
         "keyword": {
           "type": "keyword"
         }
       }
    }

Это определение на самом деле является Многопольным представлением категории.В этом случае у вас будет две разные версии вашего поля. Одна будет проанализирована, к которой можно непосредственно получить доступ category, а другая будет Not-Analyzed версия, к которой может получить доступ category.keyword.

Другаяопределение, которое вы указали:

"category": {
    "type": "text",
    "analyzer": "keyword"
}

определяет категорию как текстовое поле, анализатор которого keyword, т.е. поле категории будет сохранено как поле Not-Analyzed.

После выпуска 5.0 версия Elasticsearch, все поля с типом text по умолчанию содержат не проанализированную версию, как указано здесь

Надеюсь, это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...