2013-01-06 3 views
1
나는 다음과 같은 구조 검색을위한 문서를 매핑하는 방법에 대한 손실에있어

:ElasticSearch 매핑

{ 
    "_id": "007ff234cb2248", 
    "ids": { 
    "source1": "123", 
    "source2": "456", 
    "source3": "789" 
    } 
    "names": [ 
    {"en":"Example"}, 
    {"fr":"exemple"}, 
    {"es":"ejemplo"}, 
    {"de":"Beispiel"} 
    ], 
    "children" : [ 
    { 
     "ids": { 
     "source1": "CXXIII", 
     "source2": "CDLVI", 
     "source3": "DCCLXXXIX", 
     } 
     names: [ 
     {"en":"Example Child"}, 
     {"fr":"exemple enfant"}, 
     {"es":"Ejemplo niño"}, 
     {"de":"Beispiel Kindes"} 
     ] 
    } 
    ], 
    "relatives": { 
    // Typically no "ids" at this level. 
    "relation": 'uncle', 
    "children": [ 
     { 
     "ids": { 
      "source1": "0x7B", 
      "source2": "0x1C8", 
      "source3": "0x315" 
     }, 
     "names": [ 
      {"en":"Example Cousin"}, 
      {"fr":"exemple cousine"}, 
      {"es":"Ejemplo primo"}, 
      {"de":"Beispiel Cousin"} 
     ] 
     } 
    ] 
    } 
} 

child 객체가 직접 children 섹션에 나타날 수 있습니다, 또는 더 이상 내 문서에 uncle.children (이 경우에는 사촌)으로 중첩됩니다. ID 필드는 레벨 1 (루트), 레벨 2 (어린이 및 삼촌) 및 레벨 3 (사촌)에 공통적이며, 명명 구조는 레벨 1 및 레벨 3에도 공통입니다.

내 사용 사례는 ID (중첩 된 개체)를 접두사 및 전체 ID로 검색 할 수 있습니다. 또한 (아직 정의되지 않은) 정의 된 분석기 규칙 집합을 따라 하위 이름을 검색 할 수 있습니다.

유용한 방법으로 매핑하는 방법을 찾을 수 없었습니다. 나는 idsnames에 대해 동일한 기술을 사용하여 많은 성공을 거둘 것이라고 믿지 않는다. 이름과 문서 루트 사이에 추가 매핑 수준이 있기 때문이다.

나는 심지어 그것이 도 어블 수도임을 확신하지 못합니다. 적어도 원칙적으로 ids은 용어로 도출 가능해야하며, 어쨌든 names을 어떤 식 으로든 색인화하면 그렇게 할 수 있습니다.

나는 잃어 버렸을 뿐이지 만 문서는이 수준의 복잡한 매핑을 다루지 않는 것 같습니다.

CouchDB 강에서 오는 문서의 제한된 (읽기 : 없음) 제어가 있으며 업스트림 응용 프로그램은 이미이 형식을 사용하므로 은 실제로으로 바꿀 수 없습니다.

  • ID : "123" 소스에 의해
  • ID (나도 몰라 최선의 방법을 표시하기 위해 내가 일치해야합니다 모두 다음 의사의 조건으로 검색 할 수있는 찾고 있어요

    이 최대 의사 언어)

  • ID 접두사 : "CDL"
  • 이름 : "Example""Example Child"
  • 현지화 된 이름은 (심지어 최선의 방법 페이지에 모르는 seudo-mark this! tokenising 및 분석

구체적인 내용 나는 적어도 키와 개체 속성의 값이 모두 중요 할 때

  • 객체를 매핑하는 방법을 알고있을 때 나는 나 자신을 위해 알아낼 수
  • 키와 값이 중요 할 때 열거 가능한 객체.

답변

1

그 아이에 대한 ID의 매핑이 1 - 투 - 많은 경우, 필드는 여러 값을 가질 수있는 당신이하는 아이 필드에 자녀의 이름을 저장할 수 있습니다. 각 문서는 ID 필드, 관계 필드 및 0 이상 자식 필드를 가질 수 있습니다.

+0

문서를 전처리하여 더 단순한 문서로 만들 것이라고 생각합니다. 탄성 검색에 대용량의 데이터 블록을 던지거나 수정하지 않고 붙이기보다는 검색하려는 데이터를 더 잘 나타냅니다. . –