4] 데이터 검색
: 특정 문장이 검색어로 요청되면 분석기를 통해 분석된 토큰의 일치 여부를 판단해서 그 결과에 대한 Score를 매긴다.
4.1] 검색 API
: 문장은 색인 시점에 Term을로 분해 됨 > 검색시에는 이 텀을 일치 시켜야 검색이 가능해짐.
: Term레벨의 쿼리 flow
: match의 쿼리 flow
> 검색시점에도 match, term 에 따라 인덱스를 분석후 문서번호를 찾는다.
4.1.1]검색 질의 표현 방식
: 엘라스틱서치에서 제공하는 API는 기본적으로 Query를 기반으로 동작
- URI 검색 > HTTP GET 요청을 활용하여 표현의 한계(간단한 쿼리만 작성)
- Requset Body검색 > JSON 형식으로 Body에 쿼리를 입력하여 작성
> uri 검색 이용시 자주 사용되는 파라미터로 & 추가로 검색 요청 할 수 있다.
4.2] Query DSL 이해하기
: 여러개의 쿼리를 조합하거나 결과에대해 재 검색이 쉬워짐.
4.2.1]Query DSL 쿼리의 구조
: 미리 정의된 문법에 따라 JSON구조를 작성
{
"size": // 리턴받는 결과의 개수
"from" : // 몇번째 문서부터 가져올지 지정
"timeout": // 시간제한....
"_source": // 검색시 필요한 필드만 출력하고 싶을시 사용.
"query": //검색조건문
"aggs": //집계 조건
"sort": //어떻게 출력할지
}
4.2.2] Query DSL 쿼리와 필터
- 쿼리 컨텍스트 : 전문검색 시(상대적으로 느림) > 문서가 쿼리와 얼마나 유사한지, 루씬 이용, 캐싱 X, 디스크 연산을 수행
- 필터 컨텍스트 : 조건 검색 시 사용 >문서가 일치하는지 여부(Y/N), 단순 매칭여부, 내부적으로 캐싱, 메모리 연산으로 상대적으로 빠름
> 필터가 상대적으로 유사도를 평가하지 않아 성능이 좋으며 캐시도 지원
> 필터의 캐시원리
: 필터 전용의 역색인표라고 할 수 있으며 역색인표의 일부를 뽑아낸 것과 비슷한 모양으로 비트벡터 형태로 저장해 둔다.
4.2.3] Query DSL의 주요 파라미터
- Multi Index : 기본적으로 multi Index 밑 Multi Type 검색이 가능하여 요청시 ','으로 검색할 인덱스를 표시해주며 , "*"를 와일드카드로 사용가능하다.
- 쿼리 결과 페이징 : from, page를 통해서 페이징이 가능하다. 문서의 번호인 from을 조정해 주면 된다.
- 쿼리 결과 정렬 : sort 파라미터를 통해 특정 필드를 기준으로 재정렬 할 수 있다.
- _soruce 필드 필터링 : 검색결과에 포함시키고 싶은 필드를 지정할 수있다.
- 범위검색 : Range 기반으로 <, >, <=, >= 제공
- operator 설정 : 기본적으로 OR 연산이나 AND 연산을 명시 가능
- minimum_should_match 설정 : OR을 AND처럼쓸 수있는 건데(쿼리의 term 개수만큼 설정)...최소 term 매치 갯수를 설정하는 것
- fuzziness : 유사한 검색 결과(허용범위내).. 어느정도 오타 처리.
- boost : 관련성 높은 필드나 키워드에 가중치 부여
4.3]Query DSL의 주요 쿼리
4.3.1] Match All Query
> 색인에 모든 문서를 검색하는 쿼리
4.3.2] Match Query
> 조건에 맞춰 전문 검색을 수행.
4.3.3] Multi Match Query
> 여러 필드를 대상으로 검색시 사용
4.3.4] Term Query
> Text데이터 타입, Keyword 데이터 타입
> 별도의 분석 작업을 수행하지 않고 입력된 텍스트가 존재하는 문서를 찾음.
4.3.5] Bool Query
> 논리적으로 일치하는 문서를 복합적으로 검색
- must : 반드시 조건에 만족하는 문서
- must_not : 반드시조건에 만족하지 않는 문서
- should : 여러 조건 중 하나 이상을 만족하는 문서
- filter : 조건을포함하고 있는 문서
4.3.6] Query String
> 기본적으로 내장된 쿼리분석기를 사용
4.3.7] Prefix Query
> Prefix 비교
4.3.8] Exists Query
> 값이 존재하는 문서 찾는 쿼리
4.3.9] Wildcard Query
> * : 문자 길이 상관 없이 와일드카 일치하는 문서
> ? : 한글자 다른 문서
'Computer > Study' 카테고리의 다른 글
엘라스틱서치 실무가이드(5-1) (0) | 2020.01.09 |
---|---|
엘라스틱서치 실무가이드(4-2) (0) | 2020.01.08 |
엘라스틱서치 실무가이드(3-2) (0) | 2019.12.10 |
엘라스틱서치 실무가이드(3-1장) (0) | 2019.12.04 |
엘라스틱서치 실무가이드(1장, 2장) (0) | 2019.11.27 |