본문 바로가기

개발자를 벗어나긴 글렀다./Elastic Search

Elastic Search 기본 조회

Elastic 과 관련해서는 조회할 일이 생각보다 많습니다. 

조회쿼리가 단순하지만, 막상 쓸려고 하면 기억이 안나는 경우가 많아 기본적인걸 정리합니다.


* @가 붙은것은 변수입니다.

GET @index/_search

{

  "size":100,

  "query": {

    "bool": {

      "must": [

        { "match": { "@fildname": "@name" }},

        { "exists": { "field": "@name" }},

        { "range": { "@time": { "gte": "now-2m" }}}

      ]

    }

  },

  "sort": [

    { "@time": { "order": "desc" } }

  ]

}


1. Should vs Must

   Elastic은 모든 용어가 직관적입니다. bool 은 boolean  즉, true/false를 뜻함으로 true인 조건들을 안에 나열해놓았습니다.

    그 중에서도 Should 와 Must는  or  과 and 로 생각하시면 편하겠습니다.


Should : 하나만 존재해도 true - OR

Must : 모두다 존재해야 true - AND


2. Term vs Match

      아주 간단하게 설명하자면, Term은 equals 비교 Match는 like 비교라고 생각해도되겠다. 하지만 Term으로 비교하기 위해서 기본 doc구조자체가 keyword형태로 되어있어야한다.


Term : datatype - Keyword , == 비교

Match : 비슷하기만 하면 됨. (minimum_should_match로  match 갯수 조절가능)

  * Reference : https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html