只要Elastic搜索中已存在一个索引,我就会尝试使用以下步骤创建另一个索引。
1)使用设置和分析器
创建一个名为 dsi2 的空索引curl -XPUT 'https://instance:9243/dsi2' -d '{
"settings": {
"index": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"analysis": {
"analyzer": {
"analyzer_keyword": {
"tokenizer": "keyword",
"filter": "lowercase"
}
}
}
}
}'
2)创建映射,
curl -XPUT 'https://instance:9243/_mapping/dsi2' -d '{
"_all": {
"enabled": true
},
"properties": {
"formTypeId": {
"type": "integer"
},
"status": {
"type": "integer"
},
"tenantId": {
"type": "integer"
},
"formDefinitionId": {
"type": "integer"
},
"instance": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"fields": {
"raw": {
"type": "integer",
"index": "not_analyzed"
}
.....
它抛出
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "analyzer [analyzer_keyword] not found for field [raw]"
}
],
"type": "mapper_parsing_exception",
"reason": "analyzer [analyzer_keyword] not found for field [raw]"
},
"status": 400
}
当 dsi2 是使用相同步骤创建的唯一索引时, dsi2 创建映射时没有问题1)& 2)以上。如果已经在 dsi2 之前创建了一个索引 - 尽管两个索引都是单独的索引 - 是否与映射有冲突?