2019. 3. 24. 02:13ㆍ[공부] 독서/실무 예제 Elasticsearch 검색엔진 기본
localhost:9200/INDEX/_settings 로 인덱스 정보 바꾸기
{ "settings" : { "number_of_shards" : 5, "number_of_replicas" : 1, "index" : { "refresh_interval" : "1s" }, "analysis" : { # 인덱싱 언어 추출 (Term) # 역 인덱스 파일 생성 # 하나의 tokenizer와 여러개 filter 로 구성 # 길어서 생략 # 책 53p 참조 }, "store" : { "type" : "mmapfs" "compress" : { "stored" : true, "tv" : true } # Store type # 윈도우 64bit : mmapfs # 윈도우 32bit : simplefs # 나머지 : niofs # Stored field, Term vector 압축 설정 } } } |
localhost:9200/INDEX/_mapping 로 인덱스 스키마 바꾸기
{ "mappings" : { "_doc" : { "_id" : { "index" : "not_analyzed", "store" : "no", "path" : "item_id" # Document의 Primary 키 필드 설정 }, "_source" : { "enabled" : "true" # 인덱싱 된 문서에 대한 모든 필드 데이터 저장하겠다. # 검색 결과를 출력하는 용도면 true 분석이 목적이면 false로 하는 것을 추천한다. }, "_all" : { "enabled" : "false" # 검색할 대상 필드가 정확하지 않을 경우 true로 사용한다. # true로 하면 인덱싱 파일 용량이 증가한다. # 실서비스에서는 false로 두고 검색 필드를 정의하는 것을 추천한다. # false로 하면 어떤 필드를 인덱싱 할 것인지 analyzed 옵션을 줘야한다. }, "properties" : { "myName" : { "type" : "text", "index" : "not_analyzed" }, "myJob" : { "type" : "text", "index" : "analyzed" }, "myDescription" : { "type" : "text", "index" : "not_analyzed" }, "myBalance" : { "type" : "long", "index" : "not_analyzed" } } } } } |
properties에 들어갈 수 있는 core type
모든 타입의 필드에 사용 가능한 core type
store : 원본의 저장 여부 설정 (기본값 : no)
index : 인덱싱을 어떻게 할 것인가? analyzed or not_analyzed (기본값 : analyzed )
boost : 중요도 (기본값 : 1)
null_value : null이 들어왔을 때 기본값을 설정
include_in_all : _all 필드에서 검색 가능한 필드 정보를 포함할지 설정 (기본값 : true)
text 모든 타입의 필드에서만 사용 가능한 core type
index_options : 인덱싱 할 때 저장할 메타 정보 설정
index_analyzer : 인덱싱 할 때 사용할 분석기 설정
search_analyzer : 검색 할 때 사용할 분석기 설정
analyzer : 인덱싱, 검색 할 때 사용할 분석기 설정
ignore_above : 설정한 크기 이상의 문자열은 무시하겠다.
omit_norms : 검색 Score 계산할 때 term 빈도를 계산할 것 인가 (기본값 : analyzed 면 false 아니면 true)
term_vector : 인덱싱 언어에대한 메타 정보를 저장하겠다. (기본값 no)
기타 date, number에 사용가능한 core type
ignored_malformed : 잘못된 정보는 무시하겠다. (기본값 no)
format : date 한정 사용가능
용어 설명
token : term, 인덱싱을 통해 추출된 키 값
analyzed : 해달 필드를 분석해서 token, offset, position, term의 빈도, 문서 랭킹을 위한 유사도 등 정보 추출한다.
not analyzed : 해당 필드 분석 없이 필드값 하나가 token으로 구성된다.
1. 검색 필드
type : 원하는 대로
index : 원하는 대로
store : no
include_in_all : false
2. 패싯 필드 (카테고리 필드)
type : 원하는 대로
index : not_analyzed
store : no
include_in_all : false
3. 정렬 필드 (ex. price)
type : long, integer...
index : not_analyzed
store : no
include_in_all : false
4. 부스트 필드 (문서 검색의 정확도를 높여주기 위한 기능)
type : 원하는 대로
index : 원하는 대로
boost : 원하는 대로
store : no
include_in_all : false
5. 강조 필드
type : 원하는 대로
index : 원하는 대로
term_vector : with_positions_offsets
store : yes
include_in_all : false
'[공부] 독서 > 실무 예제 Elasticsearch 검색엔진 기본' 카테고리의 다른 글
Elastic search 실전 기본 (쿼리 추가 기능) (0) | 2019.03.24 |
---|---|
Elastic search 실전 기본 (검색 응답, 검색 방법) (0) | 2019.03.24 |
Elastic search 실전 기본 (용어, 설정, API) (0) | 2019.03.24 |