如何从组字段中获取最大值,最小值仅在ElasticSearch中

时间:2016-09-09 10:05:12

标签: elasticsearch max field

我的数据库是这样的:

hits:[
{"x1": 5, "x2": 6, "x3": 7, "x4": 8, "y1": 1, "y2": 2, "y3": 6, "y4": 5},
{"x1": 5, "x2": 6, "x3": 1, "x4": 8, "y1": 1, "y2": 2, "y3": 3, "y4": 5}]

首先:我希望获得结果最大组X(x1,x2,x3,x4) - 最小组X(x1,x2,x3,x4),最大组Y(y1, y2, y3, y4) - 最小组Y(y1, y2, y3, y4)基于每次点击,

像那样: 打1号:

max groupX(5,6,7,8) = 8
min groupX(5,6,7,8) = 5
max groupY(1,2,6,5) = 6
min groupY(1,2,6,5) = 1

并期待每次点击:maxX - minX, maxY - minY so: (8-5), (6-1) = 3, 5 与命中第二名相似。 总预期结果:

3, 5   
7, 4

继续,我希望每列最多。所以最终期望的结果如下:

7, 5.

所以在ElasticSearch中,我还不知道如何使用它。 请帮帮忙。非常感谢你。 对不起,如果我不能说明问题很简单,因为我的英语资格太差了。

因此,当在ElasticSearch中查询时,我不知道如何获得Max和Caculator。在sql中,我可以

SELECT MAX(T2.MaxX) AS MAXHEIGHT, MAX(T2.MaxY) AS MAXWIDTH
 FROM 
( 
   SELECT
 ( SELECT MAX(value.x) - MIN(value.x)
     FROM (VALUES 
     (x1),(x2),(x3),(x4)) AS value(x)) AS MaxX,
( SELECT MAX(value.y) - MIN(value.y)
    FROM (VALUES
     (y1),(y2),(y3),(y4)) AS value(y)) AS MaxY
 FROM (T1) T2

0 个答案:

没有答案