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}
'Elasticsearch' 카테고리의 다른 글
[elasticsearch] failed to put mappings on indices (0) | 2015.05.27 |
---|---|
[elasticsearch] flush, refresh, optimization (0) | 2015.05.26 |
[elasticsearch] 모든 인덱스(색인)삭제 및 방어 (0) | 2015.05.23 |
[elasticsearch] performance tuning (성능 튜닝) (0) | 2015.05.23 |
[펌] Scaling Massive Elasticsearch clusters ! (0) | 2015.05.23 |