사용자 도구

사이트 도구


search:elasticsearch:query

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
search:elasticsearch:query [2017/06/01 10:24]
kwon37xi 만듦
search:elasticsearch:query [2017/06/01 13:53] (현재)
kwon37xi
줄 1: 줄 1:
 ====== ElasticSearch Query ====== ====== ElasticSearch Query ======
 +
 +===== From/Limit =====
 +  * 쿼리 결과 ''from/limit'' 지정<code json>
 +GET /_search
 +{
 +    "from" : 0, "size" : 10,
 +    "query" : {
 +        "term" : { "user" : "kimchy" }
 +    }
 +}
 +// 혹은
 +GET /_search?from=0&size=10
 +</code>
  
 ===== null 체크 ===== ===== null 체크 =====
줄 22: 줄 35:
             "filter": {             "filter": {
                 "missing" : { "field" : "필드이름" }                 "missing" : { "field" : "필드이름" }
 +            }
 +        }
 +    }
 +}
 +</code>
 +===== 범위 (Range) =====
 +  * [[https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html|Range Query]]<code json>
 +GET _search
 +{
 +    "query": {
 +        "range" : {
 +            "age" : {
 +                "gte" : 10, // "gt"
 +                "lte" : 20, // "lt"
 +                "boost" : 2.0
 +            }
 +        }
 +    }
 +}
 +</code>
 +  * ''gte'' : Greater-than or equal to
 +  * ''gt'' : Greater-than
 +  * ''lte'' : Less-than or equal to
 +  * ''lt'' : Less-than
 +  * ''boost'' : Sets the boost value of the query, defaults to 1.0
 +
 +===== Distinct Field =====
 +  * [[https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html|Terms Aggregation]]
 +  * ''product'' 필드값으로 distinct 하고 결과를 5개까지 출력, 이때 검색결과는 출력하지 않고 통계 결과만출력 <code json>
 +{
 +    "size": 0, // 검색결과 출력 안하게
 +    "aggs" : {
 +        "products" : {
 +            "terms" : {
 +                "field" : "product",
 +                "size" : 5
 +            }
 +        }
 +    }
 +}
 +</code>
 +  * 정렬하기<code json>
 +{
 +    "aggs" : {
 +        "genres" : {
 +            "terms" : {
 +                "field" : "genre",
 +                "order" : { "_count" : "asc" }  // asc/desc
 +            }
 +        }
 +    }
 +}
 +</code>
 +    * ''_term'' : 키로 정렬
 +    * ''_count'' : 키의 존재 갯수로 정렬
 +  * 필터와 함께 적용[[https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html|Filter Aggregation]] <code json>
 +{
 +    "size": 0,
 +    "aggs" : {
 +        "t_shirts" : {
 +            "filter" : { "term": { "type": "t-shirt" } },
 +            "aggs" : {
 +                "avg_price" : { "avg" : { "field" : "price" } }
             }             }
         }         }
search/elasticsearch/query.1496282062.txt.gz · 마지막으로 수정됨: 2017/06/01 10:24 저자 kwon37xi