elasticsearch 집합 초식 (1)

3164 단어 elasticsearch 집합

참고


elasticsearch 권위 가이드

2. 기본 개념


2.1 두 가지 주요 개념

  • bucket통
  • 특정 조건을 충족하는 문서 컬렉션
  • metric 지표
  • 통 안의 문서를 통계적으로 계산하다
    모든 집합은
    (1) 한 통 혹은 여러 통
    (2) 0개 이상의 지표
    의 조합

    2.2통


    쉽게 말하면 통은 특정한 조건을 만족시킨 문서의 집합이다
    집합이 실행되기 시작하면,
    (1) 각 문서의 값은 계산을 통해 어느 통의 조건에 부합되는지 결정한다.
    (2) 일치하면 해당 통에 문서를 넣고 집합 작업을 진행합니다
    (3) 통은 다른 통에 끼워 넣을 수 있고 차원화되거나 조건이 있는 구분 방안을 제공할 수 있다

    2.3 지표


    유통은 목표를 달성하는 수단이고 최종 목표는 다음과 같다.
    통 안의 문서에 대해 몇 가지 지표를 계산하다
    대다수의 지표는 모두 간단한 수학 계산이다

    3. 통 정렬


    3.1 기본 정렬


    기본값, 다수치 통은 doc_에 따라count 내림차순 정렬

    3.2 order


    order 객체를 도입하여 배럴 정렬을 확장했습니다.
    유형
    설명
    terms
    histogram
    date_histogram
    _count
    문서 수량에 따라 정렬



    _term
    단어 항목의 문자열의 사전 순서에 따라 배열하다



    _key
    모든 통의 키 값 수치에 따라 정렬



    3.3 도량 정렬


    도량 집합을 추가한 다음 외부 order에서 구체적인 도량을 지정할 수 있습니다
  • 메트릭은 1개의 출력 값만 있음
  • GET /cars/_search
    {
      "size": 0,
      "aggs": {
        "colors": {
          "terms": {
            "field": "color",
            "order": {
              "avg_price": "asc"
            }
          },
          "aggs": {
            "avg_price": {
              "avg": {
                "field": "price"
              }
            }
          }
        }
      }
    }
  • 메트릭에 여러 값이 있는 경우 특정 매개변수를 지정해야 함
  • GET /cars/_search
    {
      "size": 0,
      "aggs": {
        "colors": {
          "terms": {
            "field": "color",
            "order": {
              "stats.variance": "asc"
            }
          },
          "aggs": {
            "stats": {
              "extended_stats": {
                "field": "price"
              }
            }
          }
        }
      }
    }

    3.4 깊이 도량


    다음과 같이 메트릭을 중괄호>로 중첩하여 더 깊은 경로를 정의할 수 있습니다.my_bucket>another_bucket>metric
    하지만
    (1) 중첩 경로의 모든 통은 단값이어야 한다
    (2) 단일 드럼은 3개뿐: filter, globalreverse_nested
    GET /cars/_search
    {
      "size": 0,
      "aggs": {
        "colors": {
          "histogram": {
            "field": "price",
            "interval": 20000,
            "order": {
              "red_green_cars>stats.variance": "asc"
            }
          },
          "aggs": {
            "red_green_cars": {
              "filter": {
                "terms": {
                  "color": [
                    "red",
                    "green"
                  ]
                }
              },
              "aggs": {
                "stats": {
                  "extended_stats": {
                    "field": "price"
                  }
                }
              }
            }
          }
        }
      }
    }
    

    좋은 웹페이지 즐겨찾기