ElasticSearch 공통 분석 명령 정리(장기 업데이트...)

5794 단어 elasticsearch

전제


아니면 이전의 yagao를 예로 들지만 맵핑을 수정하고 텍스트 tags의fielddata 속성을true로 설정해야 합니다. 아래와 같습니다.
PUT /ecommerce/_mapping/product
{
  "properties": {
    "tags": {
      "type": "text",
      "fielddata": true
    }
  }
}

1、tag당 상품 수량 계산

GET /ecommerce/product/_search
{
  "aggs": {
    "group_by_tags": {
      "terms": { "field": "tags" }
    }
  }
}

2. 이름에 yagao가 포함된 상품에 대해 tag당 상품 수량을 계산한다

GET /ecommerce/product/_search
{
  "size": 0,
  "query": {
    "match": {
      "name": "yagao"
    }
  },
  "aggs": {
    "all_tags": {
      "terms": {
        "field": "tags"
      }
    }
  }
}

3. 먼저 조를 나누어 각 조의 평균치를 계산하고 각 tag하의 상품의 평균 가격을 계산한다

GET /ecommerce/product/_search
{
    "size": 0,
    "aggs" : {
        "group_by_tags" : {
            "terms" : { "field" : "tags" },
            "aggs" : {
                "avg_price" : {
                    "avg" : { "field" : "price" }
                }
            }
        }
    }
}

4. 각 tag 아래 상품의 평균 가격을 계산하고 평균 가격의 하락순서에 따라 정렬

GET /ecommerce/product/_search
{
    "size": 0,
    "aggs" : {
        "all_tags" : {
            "terms" : { "field" : "tags", "order": { "avg_price": "desc" } },
            "aggs" : {
                "avg_price" : {
                    "avg" : { "field" : "price" }
                }
            }
        }
    }
}

5. 지정된 가격 범위 구간에 따라 그룹을 나눈 다음에 각 그룹 내에서 tag에 따라 그룹을 나누고 마지막으로 각 그룹의 평균 가격을 계산한다

GET /ecommerce/product/_search
{
  "size": 0,
  "aggs": {
    "group_by_price": {
      "range": {
        "field": "price",
        "ranges": [
          {
            "from": 0,
            "to": 20
          },
          {
            "from": 20,
            "to": 40
          },
          {
            "from": 40,
            "to": 50
          }
        ]
      },
      "aggs": {
        "group_by_tags": {
          "terms": {
            "field": "tags"
          },
          "aggs": {
            "average_price": {
              "avg": {
                "field": "price"
              }
            }
          }
        }
      }
    }
  }
}

참고: ElasticSearch 강좌(용과대학)

좋은 웹페이지 즐겨찾기