Elasticsearch: определение корневого отображения имеет индекс неподдерживаемых параметров: not_analyzed
Привет всем, я пытаюсь создать схему теста.
PUT /test
{
"mappings": {
"field1": {
"type": "integer"
},
"field2": {
"type": "integer"
},
"field3": {
"type": "string",
"index": "not_analyzed"
},
"field4": {
"type": "string",
"analyzer": "autocomplete",
"search_analyzer": "standard"
}
},
"settings": {
bla
bla
bla
}
}
Я получаю следующую ошибку
{
"error": {
"root_cause": [{
"type": "mapper_parsing_exception",
"reason": "Root mapping definition has unsupported parameters: [index : not_analyzed] [type : string]"
}],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [featured]: Root mapping definition has unsupported parameters: [index : not_analyzed] [type : string]",
"caused_by": {
"type": "mapper_parsing_exception",
"reason": "Root mapping definition has unsupported parameters: [index : not_analyzed] [type : string]"
}
},
"status": 400
}
Пожалуйста, помогите мне решить эту ошибку
Ответы
Ответ 1
Вы почти здесь, вы просто упускаете несколько вещей:
PUT /test
{
"mappings": {
"type_name": { <--- add the type name
"properties": { <--- enclose all field definitions in "properties"
"field1": {
"type": "integer"
},
"field2": {
"type": "integer"
},
"field3": {
"type": "string",
"index": "not_analyzed"
},
"field4,": {
"type": "string",
"analyzer": "autocomplete",
"search_analyzer": "standard"
}
}
}
},
"settings": {
...
}
}
ОБНОВИТЬ
Если ваш индекс уже существует, вы также можете изменить свои отображения следующим образом:
PUT test/_mapping/type_name
{
"properties": { <--- enclose all field definitions in "properties"
"field1": {
"type": "integer"
},
"field2": {
"type": "integer"
},
"field3": {
"type": "string",
"index": "not_analyzed"
},
"field4,": {
"type": "string",
"analyzer": "autocomplete",
"search_analyzer": "standard"
}
}
}
ОБНОВЛЕНИЕ:
Начиная с ES 7, типы отображения были удалены. Вы можете прочитать более подробную информацию здесь
Ответ 2
Я надеюсь, что приведенный выше ответ работает для упругого поиска <7.0, но в 7.0 мы не можем указать тип документа, и он больше не поддерживается. И в этом случае, если мы укажем тип документа, мы получим похожую ошибку.
Если вы используете Elastic search 7.0 и последнюю версию Nest С# (6.6). В ES 7.0 есть некоторые серьезные изменения, которые вызывают эту проблему. Это потому, что мы не можем указать тип документа и в версии 6.6 NEST они используют doctype. Таким образом, чтобы решить, что до выхода NEST 7.0, нам нужно скачать их бета-версию
Пожалуйста, пройдите по этой ссылке для исправления
https://xyzcoder.github.io/elasticsearch/nest/2019/04/12/es-70-and-nest-mapping-error.html
РЕДАКТИРОВАТЬ: NEST 7.0 теперь выпущен. NEST 7.0 работает с Elastic 7.0. Смотрите примечания к выпуску здесь для деталей.
Ответ 3
Проверьте свою версию Elastic.
У меня были эти проблемы, потому что я искал документацию по неверной версии.
![enter image description here]()