출처 

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/analysis-intro.html

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-analyzer-field.html


Elasticsearch의 index 속성은 가장 내가 잘 이해 못했던 내용 중의 하나이다. index 용어를 많이 쓰이기도 하지만, 번역(책)에서 불러 일으키는 오해도 약간 있는 듯 하다. 


 "user" : {
               
"type" : "string",
               
"index" : "not_analyzed",
               
"norms" : {
                   
"enabled" : false
               
}
           
}

index는 analyzer 적용을 할지 안할지를 결정한다. 3가지 값 중 하나가 들어간다.

1. analyzed -  analyzer가 있다는 뜻이다. (또는 custom 정의 analyzer가 있다.)  analyzed는 "broken down into searchable terms"로 만든다는 것이다. 토큰으로 잘라 검색한다. "back to the future" 라는 단어는 'back', 'to',  'the', 'future'라는 토큰으로 나누어진다는 것을 의미



2. not_analyzed - analyzer가 없다. (또는 built in analyzer를 쓰지 않는다는 얘기이다.)

배열로 멀티 검색할 때는 not_analyzed를 써야 한다. 

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-array-type.html


3. no - indexing하지 않는다. 순수하게 저장용으로 쓸 때 유용하다. 




Posted by '김용환'
,