21.07.02 TIL

americano4ever·2021년 7월 3일
0

TIL

목록 보기
1/22

1. Elasticsearch 검색 Api

검색이란?

수 많은 대상 데이터 중에서 조건에 부합하는 데이터로 범위를 축소하는 행위

풀 텍스트 쿼리

  • match_all: 해당 인덱스의 모든 도큐먼트를 검색
  • match : 해당 키워드가 포함된 모든 문서 검색.
  • match 검색 + 여러개의 검색어 -> OR 조건이 디폴트로 적용. Operator를 통해 변경가능.
    -> 소규모 사이트에서는 검색했을때 and 조건이 적용되는 경우가 많았는데 elastic이 적용 안된 건가?, 사용자의 기대는 and일까 or 일까
  • match_phrase : 정확하게 일치하는 내용 검색, slop 명령어로 지정된 값만큼의 형태소가 사이에 올 수 있다.

복합쿼리

여러개의 쿼리를 조합하여 사용

  • must: 쿼리가 참인 도큐먼트 검색
  • must_not: 제외할 검색어 두고 검색
  • should: 검색 결과 중 이 쿼리에 해당하는 도큐먼트의 점수를 높임.

정확도

: 정확도를 통해, 사용자가 원하는 결과와 얼마나 부합되는지 알 수 있다.
Elasitc에서는 정확도를 BM25지수를 통해 스코어로 나타낸다.

  • TF: 검색어의 형태소가 많이 들어있는 경우
  • IDF: 더 포함 빈도가 희소한 검색어일 경우 점수를 높게 줌.
  • FL : 더 짧은 필드에 점수를 높게 줌.

Bool:should

검색 점수를 조정하기 위해서 사용

1) 가중치를 주고 싶은 검색어가 있을 때
2) 특정 조건에 부합하는 검색어를 상위로 올리고 싶을 때 사용.

범위 쿼리

숫자 혹은 날짜에 대한 쿼리 (range)

  • range : {필드명 : { 파라미터 : 값 } }

gte 이상, gt 초과, lte 이하, lt 미만

  • 날짜는 따로 설정을 하지 않는 다면, ISO86 형식으로 넘겨줘야 한다.
    포맷을 다르게 하고 싶다면, format 옵션을 통해서 변경 가능하다.

0개의 댓글