2016-10-14 4 views
0

https://www.elastic.co/blog/index-vs-type탄성 검색 유형 대 다른 스키마의 색인

유형이란 무엇입니까?

입력란마다 유형이 서로 일치해야합니다. 예를 들어, 두 개의 필드가 같은 인덱스의 서로 다른 유형에서 같은 이름을 가진다면 동일한 필드 유형 (문자열, 날짜 등)이어야하며 동일한 구성을 가져야합니다.

그리고 "하나는 내가 사용한다"

이 문서는 유사한 매핑이 있습니까? 그렇지 않은 경우 다른 색인을 사용하십시오.

그러나 여전히 https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child.html에는 동일한 색인에 상위 하위 문서를 배치해야한다고 언급합니다. 그러나 얼마나 자주 부모 - 자식은 비슷한 매핑을 가지고 있습니까? 그리고

부모 - 자식 검색을 할 수 있도록 동일한 인덱스에 내 2 가지 다른 문서를 넣어야하는지 조사하고 있습니다.

그러나 인덱스 대 유형에서 이해할 수있는 것은 다른 스키마가있는 문서가 실제로 다른 인덱스에 배치되어야한다는 것이지만 어떻게 부모 - 자식 관계가 작동할까요?

답변

2

"비슷한 매핑"을 사용하면 동일한 이름이지만 두 가지 다른 매핑 유형의 필드가 동일한 데이터 유형을 가져야 함을 의미합니다.

서로 다른 부모 및 자식 매핑 유형을 사용하는 것이 좋지만 유일한 제약 조건은 두 매핑에 이름이 같지만 데이터 유형이 다른 필드가 없어야한다는 것입니다. 부모 매핑 유형 intage라는 이름의 필드가있는 경우

는 예를 들어, 아이 매핑 유형의 문제는 다른 형식화와 같은 필드 유형 longage 또는 string

1

라는 이름의 필드가없는 경우를 유사한 색인 및 다른 유형을 사용하십시오. 이 문제를 해결하기 위해이 필드에 prefix를 사용할 수 있습니다. 예 :

usercompany 유형의 경우 score 필드가 있습니다. 그 중 하나는 integer이고 그 중 하나는 입니다. 이 점수 필드에 다른 이름을 지정해야합니다.

POST main_index/user/_mapping 
{ 
    "properties": { 
     .... 
     "user_score": { 
      "type": "integer" 
     } 
    } 
} 

POST main_index/company/_mapping 
{ 
    "properties": { 
     .... 
     "company_score": { 
      "type": "string" 
     } 
    } 
} 

동일한 이름의 모든 필드를 동일하게 처리해야합니다.