मुझे इलास्टिक्स खोज में कुछ समस्या है।

मैं दो समेकित मूल्यों के साथ विभाजन मूल्य चाहता हूँ।

यह क्वेरी काम कर रही है।

{
"query": {
    "bool": {
        "adjust_pure_negative": true,
        "boost": 1.0
    }
},
"aggregations": {
    "sumPageview": {
        "sum": {
            "field": "pageview",
            "missing": 0
        }
    },
    "sumVisit": {
        "sum": {
            "field": "visit",
            "missing": 0
        }
    }
}

लेकिन यह क्वेरी काम नहीं कर रही है।

{
"query": {
    "bool": {
        "adjust_pure_negative": true,
        "boost": 1.0
    }
},
"aggregations": {
    "sumPageview": {
        "sum": {
            "field": "pageview",
            "missing": 0
        }
    },
    "sumVisit": {
        "sum": {
            "field": "visit",
            "missing": 0
        }
    },
    "totalPageviewPerVisit": {
        "bucket_script": {
            "buckets_path": {
                "sumPageview": "sumPageview",
                "sumVisit": "sumVisit"
            },
            "script": {
                "source": "params.sumPageview / params.sumVisit",
                "lang": "painless"
            },
            "gap_policy": "skip"
        }
    }
}

मुझे लगता है कि यही कारण है कि योग मूल्य बाल्टी में नहीं है।

यही कारण है ना? कृपया मेरी मदद करें।

1
khasui 8 अक्टूबर 2020, 06:30

1 उत्तर

सबसे बढ़िया उत्तर

सम एग्रीगेशन एक एकल-मान मीट्रिक एकत्रीकरण है जो योग करता है अप संख्यात्मक मान जो एकत्रित दस्तावेज़ों से निकाले जाते हैं।

बकेट स्क्रिप्ट एग्रीगेशन< /a> एक मूल पाइपलाइन एकत्रीकरण है कि एक स्क्रिप्ट निष्पादित करता है जो प्रति बाल्टी गणना कर सकता है पैरेंट मल्टी-बकेट एग्रीगेशन में निर्दिष्ट मीट्रिक।

चूंकि योग एकत्रीकरण, कोई बकेट न बनाएं, इसलिए आप उस पर बकेट स्क्रिप्ट एकत्रीकरण का उपयोग नहीं कर सकते।

अनुक्रमणिका डेटा, खोज क्वेरी और खोज परिणाम के साथ एक कार्यशील उदाहरण जोड़ना

सूचकांक डेटा:

{
  "user_id":1,
  "pageview": 1,
  "visit": 2
}
{
  "user_id":2,
  "pageview": 2,
  "visit": 3
}
{
  "user_id":3,
  "pageview": 3,
  "visit": 4
}

खोज क्वेरी:

{
  "size": 0,
  "aggs": {
    "all": {
      "terms": {
        "field": "user_id"
      },
      "aggs": {
        "sum_1": {
          "sum": {
            "field": "pageview"
          }
        },
        "sum_2": {
          "sum": {
            "field": "visit"
          }
        },
        "division": {
          "bucket_script": {
            "buckets_path": {
              "my_var1": "sum_1",
              "my_var2": "sum_2"
            },
            "script": "params.my_var1 / params.my_var2"
          }
        }
      }
    }
  }
}

खोज परिणाम:

"aggregations": {
    "all": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": 1,
          "doc_count": 1,
          "sum_2": {
            "value": 2.0
          },
          "sum_1": {
            "value": 1.0
          },
          "division": {
            "value": 0.5
          }
        },
        {
          "key": 2,
          "doc_count": 1,
          "sum_2": {
            "value": 3.0
          },
          "sum_1": {
            "value": 2.0
          },
          "division": {
            "value": 0.6666666666666666
          }
        },
        {
          "key": 3,
          "doc_count": 1,
          "sum_2": {
            "value": 4.0
          },
          "sum_1": {
            "value": 3.0
          },
          "division": {
            "value": 0.75
          }
        }
      ]
    }
0
ESCoder 8 अक्टूबर 2020, 09:28