ELK/Elasticsearch

[Elasticsearch] 검색

오늘도개발 2024. 5. 6. 12:55

1. 가장 기본적인 검색 방법

  - 모든 문서 조회

GET tripdoc/_search
{
  "query": {
    "match_all": {}
  }
}

 

 

 - 결과

 

 

 

2. 특정 필드 검색

 

 - "match" 를 이용하여 검색 대상 field 를 지정하고 검색할 값을 입력한다.

 

 - "explain" 을 사용하여 검색 결과 관련 설명도 확인 할 수 있다.

 

POST /trip_recommend/_search
{
  "query": {
    "match": {
      "content": "특별한 서울 여행"
    }
  },
  "explain": true
}

 

 

 - 검색 결과

 

 

 

3. 불리언 쿼리

 

 - must : 반드시 충족해야 하는 조건 ( AND )

 - must_not : 반드시 일치하지 않는 조건

 - should : 조건 ( OR ), minimum_should_match 로 최소 일치 갯수를 설정 할 수 있다.

 - filter : 필터로 사용될 쿼리 목록

 

 

4. 검색 score

 

 - 7버전 이후 BM25( Best Matching 25 ) 를 기본 알고리즘으로 사용

 

BM25 알고리즘

 - BM25 =  TF X IDF

 - TF : 문서 내 용어 빈도

 - IDF :  전체 문서 중 문서 빈도 (희소성이 높을 수 록 높은 점수) 

 - 즉, 전체 문서 중 희소성이 높은 문서에 검색 요청 단어의 빈도가 높다면 높은 점수의 결과가 나타남

'ELK > Elasticsearch' 카테고리의 다른 글

[Elasticsearch] Index(색인)  (0) 2024.05.06
[Elasticsearch] Mapping 정의  (1) 2024.05.06
[Elasticsearch] 엘라스틱 서치란?  (1) 2024.05.06