[Elasticsearch] 2-1. 검색과 쿼리 - Query DSL (Full text query)

2020. 11. 24. 00:43·Side Project

[Prerequsite]

# my_index 인덱스에 벌크로 데이터 입력

 

1. Kibana 접속: http://localhost:5601/

2. 좌측 Navigation Bar > Management > Dev Tools 

POST my_index/_bulk

{"index":{"_id":1}}
{"message":"The quick brown fox"}

{"index":{"_id":2}}
{"message":"The quick brown fox jumps over the lazy dog"}

{"index":{"_id":3}}
{"message":"The quick brown fox jumps over the quick dog"}

{"index":{"_id":4}}
{"message":"Brown fox brown dog"}

{"index":{"_id":5}}
{"message":"Lazy jumping dog"}

 

* Kibana에서 벌크로 데이터 입력한 결과

 

 

[Full text query Excercise]

 

1. match_all (조건 없이 인덱스에 해당되는 도큐먼트 모두 검색)

GET my_index/_search

 

2. match (AND, OR 조건에 해당되는 도큐먼트 검색)

 

 1) "dog"가 포함된 도큐먼트 검색

GET my_index/_search
{
  "query": {
    "match": {
      "message": "dog"
    }
  }
}

 

 2) OR 조건 (quick이나 dog 둘중 하나가 들어가는 도큐먼트 검색)

#match 쿼리 OR 조건으로 quick || dog 검색
#quick 이랑 dog가 들어가는 도큐먼트 검색

GET my_index/_search
{
  "query": {
    "match": {
      "message": "quick dog"
    }
  }
}

 

 3) AND 조건 (quick과 dog 둘다 포함되는 도큐먼트 검색)

#match 쿼리 AND 조건으로 quick dog 검색
#quick 이랑 dog가 들어가는 도큐먼트 검색

GET my_index/_search
{
  "query": {
    "match": {
      "message": {
        "query": "quick dog",
        "operator": "and"
      }
    }
  }
}

 

 

3. match_phrase (공백을 포함해 정확히 일치하는 내용을 검색)

 

 1) 조건 없이 검색 : lazy dog 단어를 포함하는 도큐먼트만 검색

#match_phrase 쿼리로 "lazy dog" 구문 검색
GET my_index/_search
{
  "query": {
    "match_phrase": {
      "message": "lazy dog"
    }
  }
}

 

 2) Slop 1 : lazy dog, lazy something dog

#match_phrase 쿼리에 slop:1 로 "lazy dog" 구문 검색
#lazy와dog 사이에 jumping이 있는 "Lazy jumping dog" 도큐먼트도 검색

GET my_index/_search
{
  "query": {
    "match_phrase": {
      "message": {
        "query": "lazy dog",
        "slop": 1
      }
    }
  }
}

 

 

4.query_string (URL검색에 사용하는 문법을 본문 검색에 이용하고 싶을 때 query_string 쿼리 사용)

 

 1) URL검색에 사용하는 루씬의 검색 문법

GET test/_search?q=(jumping AND lazy) OR quick dog

 

 2) query_string 쿼리 사용 ( 위 검색과 동일한 결과 출력 )

GET my_index/_search
{
  "query": {
    "query_string": {
      "default_field": "message",
      "query": "(jumping AND lazy) OR \"quick dog\""
    }
  }
}

 * \"quick dog\"" : match_phrase 처럼 구문 검색을 할 때는 검색할 구문을 쌍따옴표 \"를 넣는다.

 

 

 

 

 

 

Reference : esbook.kimjmin.net/05-search/5.1-query-dsl

'Side Project' 카테고리의 다른 글

[Microk8s] Installation & Dashboard  (0) 2021.01.07
[Elasticsearch] 1. Build Environment(Elasticsearch, Kibana)  (0) 2020.11.24
[GCP] MySQL 환경 구축  (1) 2020.02.13
[GCP] 서버 환경 구축  (0) 2020.02.13
'Side Project' 카테고리의 다른 글
  • [Microk8s] Installation & Dashboard
  • [Elasticsearch] 1. Build Environment(Elasticsearch, Kibana)
  • [GCP] MySQL 환경 구축
  • [GCP] 서버 환경 구축
monkey.valley_
monkey.valley_
  • monkey.valley_
    기술 블로그
    monkey.valley_
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Algorithm
      • Side Project
        • PCA 자격증 준비
        • Flutter
        • Vue
      • Flutter
      • Kubernetes
      • 온라인 비즈니스
      • 독서
      • 회고
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    VM INSTANCE
    디스크 컨트롤러
    hosting.kr
    H-index
    프로그래머스
    완전탐색
    베스트앨범
    microk8s
    Wordfence
    다리를 지나는 트럭
    워드프레스세팅
    Range query)
    가벼운 테마
    가장 큰수
    Deploy and Manage Cloud Environments with Google Cloud
    Challenge Lab 2
    색종이붙이기
    GCP MySQL
    elasticsearch
    MySQL환경 구축
    소수찾기
    Full text query
    pagespeedinsight
    페이지 속도
    boj17136
    서버 환경 구축
    java
    UpdraftPlus
    GCP
    PCA 자격증
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
monkey.valley_
[Elasticsearch] 2-1. 검색과 쿼리 - Query DSL (Full text query)
상단으로

티스토리툴바