Elasticsearch去重查詢

2021-09-01 11:56:21 字數 1232 閱讀 3666

最近遇到乙個es資料查詢去重的需求,我這邊需要的是獲取去重後的結果,查詢官網資料和各位大神的經驗後,總結一下elasticsearch去重查詢功能。

關係型資料庫中,比如mysql,可以通過distinct進行去重,一般分為兩種:

select

distinct

(count(1

))from test;

select

distinct name,*** from person;

test,person為對應的表名。

elasticsearch類似功能的實現方式

可以通過es head外掛程式來進行查詢測試,user_onoffline_log是有的索引名字,uid是其中的乙個字段,uid_aggs是聚合的名字,可以隨便自定義。

post user_onoffline_log/_search},

"size":0

,"aggs":}

}}

結果:

,"hits":,

"aggregations":}

}

可以看到uid欄位去重後的計數值為12243。

方式一:top_hits聚合

post

/user_onoffline_log/},

"aggs":,

"aggs":}

],"size":1

}}}}

},"size":0

}

可以通過size設定顯示的數量,上面aggs的size設定的1,結果:

}]

},"hits":,

"aggregations":,

"sort":[

""]}]

}}}]

}}}

方式二:摺疊

post

/user_onoffline_log/},

"collapse"

:}

方式二較方式一:

public

class

estest

}}

public

class

estest}}

}

Elasticsearch統計去重後的數量

elasticsearch 提供的首個近似聚合是cardinality 注 基數 度量。它提供乙個欄位的基數,即該字段的 distinct 或者 unique 值的數目。你可能會對 sql 形式比較熟悉 select count distinct color from cars去重是乙個很常見的操作...

備忘錄 elasticsearch 去重分頁查詢

一開始資料結構設計的很複雜,又是父子關係又是巢狀關係,結果發現不能通過簡單的查詢得到想要的結果 比如乙個商店只出現一件符合條件的商品,弄得查詢語句就變成這樣了 最後改了索引資訊的結構,不做關聯關係,全部平鋪,冗餘資料,發現查詢語句簡單多了,查詢語句變成如下 用 collapse 功能能從搜尋結果中去...

Elasticsearch6 X 去重統計詳解

elasticsearch有沒有類似mysql的distinct的去重功能呢?1 如何去重計數?類似mysql select distinct count 1 from my table 2 如何獲取去重結果。類似mysql select distinct name,age from users 1...