2014-01-29 4 views
1

이 인덱스에 대한 매핑이 지금elasticsearch 매핑

"properties" : { 
    "doc" : { 
    "properties" : { 
     "age" : { "type" : "long"}, 
     "name" : { "type" : "string" 
    } 
    } 
}, 

과 같을 것이다 자동 매핑으로 elasticsearch

{ 
    "name": "Mark", 
    "age": 28 
} 

에서 다음 문서를 색인의 가장 간단한 경우를 타고하지만 다음 수 있도록하고 싶었 말할 변경 이 문서의 색인을 생성해야하는 경우

{ 
    "name": "Bill", 
    "age": "seven" 
} 

e 맵핑은 갱신되지 않으며 elastic search는 age 등록 정보의 유형과 충돌하기 때문에 오류를 발생시킵니다. 두 가지 문서를 자동으로 인덱싱하고 쿼리 할 수 ​​있도록 할 수있는 방법이 있습니까?

답변

1

새 필드를 추가하고 매핑을 업데이트 할 수 있습니다. 그러나 당신은 매핑을 업데이트 할 수 없습니다. 그렇게하려면 인덱스를 삭제하고 새로운 매핑을 생성하고 데이터를 색인화해야합니다. 더 많은 정보를 들어

reference

2

매핑 당신이 색인에 두 가지 유형 데 무엇을 할 수 있도록 유형별로 정의 된 링크를 참조하십시오

  1. 숫자를
  2. 알파벳

그리고 나이 필드의 값에 따라 문서를 나눕니다. 쿼리를 실행하면 두 유형 모두를 쿼리 할 수 ​​있습니다.

+0

@ MeiSign- 어떻게 elasticsearch에 '문자열 이외의 모든 것을 고려해 보겠습니까?' – erbdex

+0

실제로 그렇게 한 적이 없지만 인덱스를 만들면 수치 검색을 false로 설정할 수 있습니다. 예 : http : //www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root- object-type.html # _numeric_detection – MeiSign

1

기존 매핑을 변경할 수 없습니다. 새 필드 만 추가 할 수 있습니다. 또는 이전 매핑 &을 삭제해야 해당 특정 인덱스에 대한 새 매핑을 만들 수 있습니다.