Search your data
Collapse search(축소 검색) : 검색 결과 축소(특정 필드 집합군 검색)
highlighting : front에서 highlight된 형태의 문서 사용(ex : 태그와 함께 return)
Long-running searches : default 동기식 검색. 긴 대기 시간 방지를 위해, 비동기 실행 가능(부분적인 결과를 검색하고, 완전한 결과는 나중에 얻음)
Near real-time search : refresh하는 프로세스 설명
Paginate search results : default 10. 요청을 받은 각 샤드는 적중 횟수와 이전 페이지 적중 횟수를 메모리에 로드-> jdbc next()와 같이 사용가능
Retriveve selected fields : fl 절에 관한 정리-> field contents 사용(_source X -> field가 mapping 고려.)
Search across clusters : 원격 클러스터 검색 지원
Search multiple data streams and indices : 옴니카트에 사용예정으로 해당 메뉴에 정리
Shard routing : 검색 요청을 데이터가 포함된 노드로 전달
Search templates : 따로 정리
Sort : 정렬 항목에 정리
Query DSL
Query and filter context
Compound queries : 복합쿼리. 정리완료
Full text queries : 정리완료
Geo queries : 거리검색 참고
Joining queries : nested 참고
Match all
Span queries : 주로 학술,법률 정보 등 전문적인 문서들을 정교하게 찾기 위한 Low-level API 집합
Specialized queries : 전문 쿼리들인데 시간있을때 신규 기능들 참고(모음검색, 등등)
Term-level queries : term 검색. 정리완료
Aggregation
Bucket : 하나 이상의 bucket을 가지는 aggregation(내부적으로 metrics를 가질 수 있음)
Metrics : numeric 필드의 aggregation(min,max,sum,avg)
Pipline : 외부 input으로 aggregation
데이터를 클러스터에 분산 저장하기 위한 단위(인덱스는 1 이상의 shard 구성.primary shard,replica)
노드가 1개이면 replica 생성X. 데이터 가용성과 무결성을 위해 최소 3개의 노드로 구성
shard 설정(index 생성과 같이 설정. 변경 불가X)
refresh : 루씬 세그먼트(불변) 형태로 저장 이후에 조회가 가능. 이러한 과정을 뜻함
routing : 검색 요청을 데이터가 포함된 노드로 전달
merge : 세그먼트 수가 늘어나면, 주기적으로 더 큰 세그먼트로 병합. 병합 세그먼트 삭제 전에 병합을 위한 신규 세그먼트가 생성되며, 이 작업은 리소스에 민감하며 I/O에 큰 영향을 받음
force-merge : 색인이 중지된 상태에서 피크 시간을 피하여 수행(부하가 큼)
segment : 데이터를 색인할 때, 디스크에 불변의 루씬 세그먼트 형태로 저장(publish).segment는 검색에 영향을 많이줌. 세그먼트수가 많다면 파일 수 만큼의 IndexReader가 있어야 하며 그에 맞는 thread가 필요. 그래서 최적의 segment file의 크기와 수를 구해야 검색 성능을 확보 할 수 있음
인덱스 보관 주기
##mapping_test로 update 색인 모니터링(index 변경)
green open mapping_test zz4UIYN0T-KSlPqNI81zbA 1 1 11 6 137.1kb 72.9kb
green open mapping_test zz4UIYN0T-KSlPqNI81zbA 1 1 11 2 152.5kb 51.1kb
green open mapping_test zz4UIYN0T-KSlPqNI81zbA 1 1 11 12 53.8kb 42.9kb
green open mapping_test zz4UIYN0T-KSlPqNI81zbA 1 1 11 28 135.2kb 77.8kb
#force merge
green open mapping_test zz4UIYN0T-KSlPqNI81zbA 1 1 11 44 70.8kb 35.3kb
queryDSL : 혼합하고 일치 시킬 수 있는 다양한 쿼리 유형 지원(JSON 기반 Domain Specific Language)
Leaf query clauses : 특정 값 찾기(ex : match,term,range,exists...)
Compound query clauses : 복합 쿼리(bool,dis_max...)
Full text query : analyzed text field 검색
Term-level queries -> keyword 필드
총 조회수(track_total_hits)
필드 검색
text 필드 : 대소문자 구분, aggs,sort는 multi field로 구성
keyword 필드 : 대소문자 구분X, aggs,sort 사용가능