我在一个索引中有两组哈希,另一个标签作为附加字段,如下所示:
索引:哈希-*
sha1-c tag
abcdefg12345 collect
abcdefg12345 collect
bcdefgh12345 collect
cdefghi collect
sha1-m tag
abclefg bad
abcgefg bad
cdefghi bad
如何在索引中找到两个标记之间的所有重复项?我更喜欢kibana中的datatable或可视化,但elasticsearch聚合/查询就足够了。你知道吗
格式
t _index sha1-c
t _type sha1-c
t sha1-c cdefghi
t tag sha1-c
t _index sha1-m
t _type sha1-m
t sha1-m cdefghi
t tag sha1-m
预期结束状态:
hash_matches
cdefghi
首先,两个索引具有相同的字段名很重要。此外,为了简单起见,
tag
和sha-1c
字段应该有一个子字段(或其本身)应该是keyword
,这样terms
聚合就不会在一些错误分析的文本上跳闸。你知道吗下面是我的建议(用5.3测试)。在2.x中,可能需要稍微更改脚本。在1.x中,此解决方案将不起作用,因为那里没有可用的管道聚合。你知道吗
解决方案基本上是在sha值上创建一个
terms
聚合,然后对每个sha计算它找到的不同标记。如果这些标签计数大于2,那么sha就有两个标签。现在,如果我们知道每个sha值在每个索引中只找到一次,它将是一个更为稳定的解。是这样吗?如果是这样,下面的tag
字段上的聚合应该转换为_index
字段上的聚合。你知道吗相关问题 更多 >
编程相关推荐