2017-05-10 1 views
0

모든 필드에 다음 템플릿을 적용하고 싶습니다. 현재이 매핑은 "이름"필드에만 적용됩니다.여러 필드에 대한 elasticsearch에서의 매핑

내가 또한 좀 더 필드 엑사이 있다고 가정하자 : "resedential_address", "work_address", "birth_place", "DOB을"등

내가 효율적인 방법으로이 작업을 수행 할 수있는 방법. 나는 모든 분야에서 동일한 블록을 반복 할 수 있다는 것을 알고있다. 또는 "텍스트"필드에 다음 템플릿을 적용 할 수있는 방법이 있습니까?

{ 
     "template": "*", 
     "settings": { 
     "analysis": { 
     "filter": { 
       "ngram_filter": { 
        "type": "ngram", 
        "min_gram": 1, 
        "max_gram": 25 
       } 
      }, 
     "analyzer": { 
      "case_insensitive": { 
       "tokenizer": "whitespace", 
       "filter": [ 
        "ngram_filter","lowercase" 
       ]  
      }, 
      "search_analyzer":{ 
        "type": "custom", 
        "tokenizer": "whitespace", 
        "filter": "lowercase" 
       } 
     } 
     } 
    }, 
    "mappings": { 
     "my_type": { 
     "properties": { 
      "name": { 
       "type": "string", 
       "analyzer": "case_insensitive", 
       "search_analyzer": "search_analyzer" 
      } 
     } 
     } 
    } 
} 

미리 감사드립니다.

답변

1

아래와 같이 다음 dynamic templates 기능을 사용하여 제공하는 커스텀 매핑 모든 text 필드를 매핑 할 경우 name, residential_address, work_address ...

+0

감사처럼 모든 문자열 필드에 대해 동일한 사용자 정의 매핑을 만듭니다 템플릿 위

{ "template": "*", "settings": { "analysis": { "filter": { "ngram_filter": { "type": "ngram", "min_gram": 1, "max_gram": 25 } }, "analyzer": { "case_insensitive": { "tokenizer": "whitespace", "filter": [ "ngram_filter","lowercase" ] }, "search_analyzer":{ "type": "custom", "tokenizer": "whitespace", "filter": "lowercase" } } } }, "mappings": { "my_type": { "dynamic_templates": [ { "strings": { "match_mapping_type": "string", "mapping": { "type": "string", "analyzer": "case_insensitive", "search_analyzer": "search_analyzer" } } } ] } } } 

@ 매우 빠른 응답을위한 avr! – SSG

+0

@SSG : 문제를 해결할 수 있도록 허용 된 답을 표시하십시오. – Richa

관련 문제