Elastic search. 기본 정리

j_6367·2022년 3월 6일
0

elasticsearch

목록 보기
1/1

데이터 타입

텍스트

  • Text
    Analyzer로 토큰화하여 풀텍스트 검색 가능
    index 필드 false로 두면 토큰화 하지 않아서 검색 불가능
    집계나 정렬이 필요하면 fileddata:true 로 하거나 field로 keyword 사용

  • Keyword
    풀텍스트 검색 불가능
    Analyzer 대신 Normalizer로 캐릭터필터와 토큰필터는 적용할 수 있음

그 외

  • 숫자: long, integer, short, byte
  • 날짜: date
  • 불리언: boolean
  • 객체: object, nested

쿼리

풀 텍스트 쿼리

  • match_all : 전체 검색
  • match: 쿼리에 있는 각 단어가 하나라도 포함된 문서 검색
  • match_phrase: 쿼리와 정확히 일치하는 문장이 있는 문서 검색

Bool 복합쿼리

  • must: 쿼리가 일치
  • must_not: 쿼리가 불일치
  • should: 일치하는 쿼리 점수 증가
  • filter: 쿼리 일치하는 문서 검색, 점수 계산 안하며 캐싱 가능

범위 쿼리

  • gte: greater then equal
  • gt: greater then
  • lte: less then equal
  • lt: less then

애널라이저

  • [캐릭터필터, 캐릭터필터 ...]
  • 토크나이저
  • [토큰 필터, 토큰 필터 ...]

캐릭터필터: 문장 전체에 대한 전처리 도구, 하나 이상 설정 가능

  • HTML strip : html문을 일반텍스트로 변환
  • Mapping: 특정 단어 변환
  • Pattern Replace:

토크나이저: 문장을 토큰으로 분리하는 역할로 하나만 가능

  • Standard : 띄어쓰기 단위로 분리 + 특수문자 제거
  • Letter: 알파벳 제외한 모든 문자를 기준으로 토큰 분리
  • Whitespace : 띄어쓰기 단위로 토큰 분리

토큰 필터 : 분리된 토큰을 처리하는 도구, 하나 이상 설정 가능

  • Uppercase, Lowercase: 대문자 소문자
  • Stop : 불용어 제거
  • synonyms: 동의어로 변환

Aggregation

  • 매트릭: sql의 select의 집계함수 개념 min, max, sum, avg ...
  • 버킷: sql의 group by 개념 range, term ...
  • sub-aggregaion: 버킷 안에 매트릭 또는 새로운 버킷 추가
  • pipeline: 다른 매트릭의 결과를 입력으로 하여 다른 결과 냄

0개의 댓글