[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] 서버 환경 구축
hj_.
hj_.
  • hj_.
    기술 블로그
    hj_.
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Algorithm
      • Side Project
        • PCA 자격증 준비
        • Flutter
        • Vue
      • Flutter
      • Kubernetes
      • 온라인 비즈니스
  • 블로그 메뉴

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

    • Linkedin
    • Github
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바