ElasticSearch 탈중정밀도 문제 해결 scripted_metric 다시 계산하기 스크립트 계산 고효율 문제 해결 (二)
7902 단어 Elasticsearch
ElasticSearch scripted_metric 다시 계산하기 스크립트 계산 고효율 문제 해결 (二)
11월 12일 문제 해결 기록 집계 후 정렬 문제 미해결
말이 많지 않으면 코드를 붙여라:init_script 정의 map_script 작업 판단 combine_script 작업 반환 레코드reduce_script가sum값을 되돌려줍니다{
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"purchase_date": {
"from": "2019-08-12 00:00:00",
"to": "2019-08-18 23:59:59",
"include_lower": true,
"include_upper": true,
"format": "yyyy-MM-dd HH:mm:ss",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"aggregations": {
"total_purchase_amount": {
"sum": {
"field": "total_purchase_amount",
"format": "0.000"
}
},
"purchase_quantity": {
"sum": {
"field": "purchase_quantity",
"format": "0"
}
},
"spu": {
"scripted_metric": {
"init_script": {
"source": "params._agg.map= new HashMap()",
"lang": "painless"
},
"map_script": {
"source": "if(!params._agg.map.containsKey(doc['spu.keyword'].value)){params._agg.map.put(doc['spu.keyword'].value,1)}",
"lang": "painless"
},
"combine_script": {
"source": "return params._agg.map.keySet().size()",
"lang": "painless"
},
"reduce_script": {
"source": "double profit = 0; for (a in params._aggs) { profit += a } return profit",
"lang": "painless"
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기
Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다
Embulk 설치
ElasticCloud (14 일 체험판)
brew라면 아래 명령
입력 파일 만들기
파일 내용
seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
{
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"purchase_date": {
"from": "2019-08-12 00:00:00",
"to": "2019-08-18 23:59:59",
"include_lower": true,
"include_upper": true,
"format": "yyyy-MM-dd HH:mm:ss",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"aggregations": {
"total_purchase_amount": {
"sum": {
"field": "total_purchase_amount",
"format": "0.000"
}
},
"purchase_quantity": {
"sum": {
"field": "purchase_quantity",
"format": "0"
}
},
"spu": {
"scripted_metric": {
"init_script": {
"source": "params._agg.map= new HashMap()",
"lang": "painless"
},
"map_script": {
"source": "if(!params._agg.map.containsKey(doc['spu.keyword'].value)){params._agg.map.put(doc['spu.keyword'].value,1)}",
"lang": "painless"
},
"combine_script": {
"source": "return params._agg.map.keySet().size()",
"lang": "painless"
},
"reduce_script": {
"source": "double profit = 0; for (a in params._aggs) { profit += a } return profit",
"lang": "painless"
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다 Embulk 설치 ElasticCloud (14 일 체험판) brew라면 아래 명령 입력 파일 만들기 파일 내용 seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.