2017-09-05 20 views
0

나는 일부 필드에 대한 사용자 분석기를 사용하고, 다른 사람에 대한 기본 분석기를 사용하려면, 그래서 다음과 같이 썼다 :기본 분석기가 Elasticsearch에서 사용자 정의 분석기를 중첩합니까?

{ 
    "settings": { 
     "analysis":{                                    
      "analyzer": {              
       "default": {            
        "type": "keyword"          
       },              
       "my_lowercase":{          
        "type": "custom",          
        "tokenizer": "whitespace",        
        "filter":[ "lowercase"]         
       }               
      }   
     }                
    },                 
    "mappings":{               
     "test_string":{              
      "_all":{              
       "enabled":false            
      },               
      "properties":{            
       "title":{             
        "type":"string",           
        "analyzer":"my_lowercase"         
       },               
       "content":{             
        "type":"string",           
        "analyzer":"my_lowercase"         
       }               
      }                
     }                 
    } 
} 

나는 위와 같이 썼을 때 필드 "내용"의 길이가 32766보다, 그것은 다음과 같은 오류를 반환했습니다 : Document contains at least one immense term. 기본 분석기를 삭제하면 올바르게 작동합니다. 그래서 사용자 정의 분석기는 기본 분석기에 의해 겹쳐져 있고 견인 필드는 기본 분석기를 사용합니다. 아무도 이유를 알고 있습니까? 고마워.

+0

을 누락 되었습니까? – MartinSchulze

답변

0

설정이 올바르지 않습니다, 당신은 작동하지 않는 무엇 analysis 섹션

"settings": { 
    "analysis": {     <--- add this                                    
    "analyzer": {              
     "default": {            
      "type": "keyword"          
     },              
     "my_lowercase":{          
      "type": "custom",          
      "tokenizer": "whitespace",        
      "filter":[ "lowercase"]         
     }               
    }  
    }               
},                 
+0

"코드"에 "분석"을 추가했습니다. 나는이 질문을 할 때 그것을 쓰는 것을 잊어 버렸다. 죄송합니다. – Lianshuai

+0

데이터 색인 방법을 보여줄 수 있습니까? – Val

+0

죄송합니다, 이해가 안됩니다. "매핑"섹션은 데이터를 색인화하는 방법이라고 생각합니다. – Lianshuai