본문 바로가기

아카이브/ElasticSearch

[5.4] 데이터 자료형

반응형

[사전 지식]


인덱스에 매핑하는 방법은 크게 2가지 -> 인덱스 생성 과정 혹은 새로운 필드가 입력될 때. 


-> 후자의 경우 dynamic mapping 인데 성능적인 면이나, 기존 데이터 스키마를 벗어나면서 데이터를 집어넣는 상황이라는 것에 의문이 있어서 스킾함.



[타입] 


- text (2.0 이전 es 에선 string) -> "analyzed"  인덱싱 되기 전에 term 단위로 쪼개는 analyer 에 의한 분석 과정을 의미(역색인). text 필드는 정렬이나 집계에 사용하지 않음.

 

옵션 


boost: 검색어에 가중치 부여


eager_global_ordinals : 디폴트 false. 빈번히 집계에 사용되는 terms 라면 true 하는게 좋음


fielddata: 역색인 구조에서, 데이터 값을 집계, 정렬에 사용할 경우 미리 메모리에 적재하는 것이 좋은데, 그것의 사용 여부. 디폴트 false


fielddata_frequency_filter: fielddata 가 설정될때, 해당하는 모든 데이터들을 메모리에 적재할지 결정. 디폴트는 true


fields: (이런게 있다 정도로) 다중 필드를 사용함으로써 같은 string 값을 다은 용도로 사용하기 위해 다른 분석기를 적용하도록 할 수 있음


include_in_all: 검색어의 terms(analyzed) 들이 '서로 다른 모든 필드들' 에 사슬처럼 연쇄적으로 매칭하는 옵션. 주로 특정 이름+날짜를 포함하는 문서를 찾을 때 용이한듯


norms 엘라스틱서치에서 사용하는 scoring 계산에 필요한 정규화 지표 값 사용 여부. 디폴트 true 라서 기본적으로 scoring 하겠다라는 거지만, 상황에 따라 scoring 이 필요 없는 필드들이 있을 것이기 때문에 false 세팅하면 꽤 많은 디스크 이득을 볼 수 있다고 한다. 필요 없다면 끌 것


position_increment_gap match_phrase에서 유사매치를 위해 사용. 글자와 글자사이의 간격(slop) 을 허용함으로써, 

slop > position_incremaent_gap 이라면 좀 떨어져 있는 단어를 포함한 절이라 하더라고 검색


term_vector text 필드에 대해서 검색 속도를 향상하기 위해 terms list, position of each term, start/end offset 등을 저장하는 옵션. 

term_vector 레벨에 대한 하위 옵션이 따로 있기 때문에, 성능/장애상황을 고려해서 킬 수 있는지 확인해야함 




반응형

'아카이브 > ElasticSearch' 카테고리의 다른 글

[5.4] analyzer  (0) 2017.06.28
블로깅전 url 기록  (0) 2017.06.26