"category": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
Это определение на самом деле является Многопольным представлением категории.В этом случае у вас будет две разные версии вашего поля. Одна будет проанализирована, к которой можно непосредственно получить доступ category
, а другая будет Not-Analyzed
версия, к которой может получить доступ category.keyword
.
Другаяопределение, которое вы указали:
"category": {
"type": "text",
"analyzer": "keyword"
}
определяет категорию как текстовое поле, анализатор которого keyword
, т.е. поле категории будет сохранено как поле Not-Analyzed
.
После выпуска 5.0
версия Elasticsearch, все поля с типом text
по умолчанию содержат не проанализированную версию, как указано здесь
Надеюсь, это поможет !!