반응형
Recent Posts
Recent Comments
관리 메뉴

개발잡부

[es] aggregations script 본문

ElasticStack/Elasticsearch

[es] aggregations script

닉의네임 2022. 7. 14. 11:33
반응형

document 가 존재하지 않는 필터조건에 대해서는 비활성화 처리를 하시겠다.. 라는건데 

 

별점이 이렇게 생겼는데  aggregation 해보니

음..

 

 

 

 

 

 

이렇게 멋지게 저장되어 있다

 "GRADE" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : 4.699999809265137,
          "doc_count" : 115
        },
        {
          "key" : 0.0,
          "doc_count" : 80
        },
        {
          "key" : 4.800000190734863,
          "doc_count" : 78
        },
        {
          "key" : 4.599999904632568,
          "doc_count" : 37
        },
        {
          "key" : 4.5,
          "doc_count" : 15
        },
        {
          "key" : 5.0,
          "doc_count" : 10
        },
        {
          "key" : 4.900000095367432,
          "doc_count" : 8
        },
        {
          "key" : 4.400000095367432,
          "doc_count" : 4
        },
        {
          "key" : 4.0,
          "doc_count" : 3
        },
        {
          "key" : 4.099999904632568,
          "doc_count" : 2
        },
        {
          "key" : 4.199999809265137,
          "doc_count" : 2
        },
        {
          "key" : 3.0,
          "doc_count" : 1
        },
        {
          "key" : 3.9000000953674316,
          "doc_count" : 1
        },
        {
          "key" : 4.300000190734863,
          "doc_count" : 1
        }
      ]
    },

 

위의 구조라면 소수점 첫째자리에서 버려야 하니까

 Math.round();  - 반올림

Math.ceil(); - 올림

Math.floor(); - 내림

 

내림 오케이

    "GRADE": {
      "terms": {
        "script": "Math.floor(doc['grade'].value)",
        "size": 20,
        "min_doc_count": 1,
        "shard_min_doc_count": 0,
        "show_term_doc_count_error": false,
        "order": [
          {
            "_count": "desc"
          },
          {
            "_key": "asc"
          }
        ]
      }
    }

 

결과값

    "GRADE" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "4.0",
          "doc_count" : 265
        },
        {
          "key" : "0.0",
          "doc_count" : 80
        },
        {
          "key" : "5.0",
          "doc_count" : 10
        },
        {
          "key" : "3.0",
          "doc_count" : 2
        }
      ]
    },
반응형

'ElasticStack > Elasticsearch' 카테고리의 다른 글

[es] Aggregations  (0) 2022.07.14
[es] bucket aggregations  (0) 2022.07.14
[es] sort - payload sort 2  (0) 2022.07.03
[es] script similarity test phase 2  (0) 2022.07.03
[es] sort - payload sort  (0) 2022.06.30
Comments