更新到Elasticsearch 1.2.1
后,我在以下映射中不断收到以下异常:
{
"tags": {
"properties": {
"tags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
这是一个例外:
Caused by: org.elasticsearch.index.mapper.MapperParsingException: Root type mapping not empty after parsing! Remaining fields: [tags : {properties={tags={index=not_analyzed, type=string}}}]
at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:265)
at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:189)
at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:387)
at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:253)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:363)
为什么?
答案 0 :(得分:10)
@Mark这似乎是1.2.X中的一个错误。还有多个其他人报告过类似问题,我将链接到下面的门票。基本上看起来他们收紧了1.2.X中映射的语法,但它们似乎已经导致了以前有效映射的一些问题。你的就是一个例子。
我建议你打开一个错误报告 - 数字更强大。很高兴地说“我也是”#34;如果你打开一张票,因为我在1.2.1上重新创建了这个问题。
现在我已经能够开展以下工作了,我相信这会给你带来同样的预期效果:
curl -XPUT localhost:9200/yourindexname -d
'{
"mappings":
{
"tags":
{
"properties":
{
"tags":
{
"type":"string",
"index":"not_analyzed"
}
}
}
}
}'
门票:
https://github.com/elasticsearch/elasticsearch/issues/6414
答案 1 :(得分:6)
这会对你有所帮助
你会想要你想做的事
curl -XPUT localhost:9200/new_index -d '
{
"mappings": {
"tags": {
"properties": {
"tags": {
"type":"string",
"index":"not_analyzed"
}
}
}
}
}'
或者您也可以这样做
curl -XPUT localhost:9200/new_index/new_index_type/_mappings -d '
{
"new_index_type": {
"properties": {
"tags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}'
答案 2 :(得分:1)
我遇到了同样的问题,因为我在弹性config/mappings
目录中使用相同类型进行映射。
删除映射文件解决了我的问题。