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)
何故ですか?
@Markこれは1.2.Xのバグのようです。同様の問題を報告している他の人が複数いました。以下のチケットにリンクします。基本的に、1.2.Xではマッピングの構文を厳しくしているようですが、以前は有効だったマッピングで問題が発生したようです。あなたのものはその一例です。
バグレポートを開くことをお勧めします。 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
これはあなたを助けます
あなたはやりたいと思うでしょう
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"
}
}
}
}'
エラスティックconfig/mappings
ディレクトリに同じタイプのマッピングがあるため、同じ問題が発生しました。マッピングファイルを削除すると問題が解決しました。