elasticsearch에서 myindex 인덱스를 생성한다. 



$ curl -XPOST 'http://localhost:9200/myindex'


$ curl -XPUT 'http://localhost:9200/myindex/order/_mapping' -d '{
"order" : {
"properties" : {
"id" : {"type" : "string", "store" : "yes" , "index":"not_analyzed"},
"date" : {"type" : "date", "store" : "no" , "index":"not_analyzed"},
"customer_id" : {"type" : "string", "store" : "yes" , "index":"not_analyzed"},
"sent" : {"type" : "boolean", "index":"not_analyzed"},
"name" : {"type" : "string", "index":"analyzed"},
"quantity" : {"type" : "integer", "index":"not_analyzed"},
"vat" : {"type" : "double", "index":"no"}
}
}
}'




한 번 더 order 매핑 POST메소드를 요청하면, 이미 존재한다고 예외가 발생한다.


{"error":"IndexAlreadyExistsException[[myindex] already exists]","status":400}



타입만 새로 바꾸어 mapping을 구성하고자 한다. vat는 원래 index가 no였는데, analyzed로 변경하려 하지만, vat 가 이미 다른 색인 값 매퍼로 되 었다고 400에러가 발생한다.

$ curl -XPUT 'http://localhost:9200/myindex/order/_mapping' -d '{
 "order" : {
 "properties" : {
 "id" : {"type" : "string", "store" : "yes" , "index":"not_analyzed"},
 "date" : {"type" : "date", "store" : "no" , "index":"not_analyzed"},
 "customer_id" : {"type" : "string", "store" : "yes" , "index":"not_analyzed"},
 "sent" : {"type" : "boolean", "index":"not_analyzed"},
 "name" : {"type" : "string", "index":"analyzed"},
 "quantity" : {"type" : "integer", "index":"not_analyzed"},
 "vat" : {"type" : "double", "index":"analyzed"}
 }
}
 }'
{"error":"MergeMappingException[Merge failed with failures {[mapper [vat] has different index values, mapper [vat] has different tokenize values]}]","status":400}

이럴 때에는 ignore_conflicts=true 옵을 주면,
의도대로 변경이 된다.


$ curl -XPUT 'http://localhost:9200/myindex/order/_mapping?ignore_conflicts=true' -d '{
 "order" : {
 "properties" : {
 "id" : {"type" : "string", "store" : "yes" , "index":"not_analyzed"},
 "date" : {"type" : "date", "store" : "no" , "index":"not_analyzed"},
 "customer_id" : {"type" : "string", "store" : "yes" , "index":"not_analyzed"},
 "sent" : {"type" : "boolean", "index":"not_analyzed"},
 "name" : {"type" : "string", "index":"analyzed"},
 "quantity" : {"type" : "integer", "index":"not_analyzed"},
 "vat" : {"type" : "double", "index":"analyzed"}
 }
 }
}'

{"acknowledged":true}



Posted by '김용환'
,