ElasticSearch - Return 查询中只有唯一值
ElasticSearch - Return only unique values in query
你好。
我已经为这个问题苦苦挣扎了一段时间,因为我是 ElasticSearch 的新手,非常感谢一些指导或建议。
我的目标是执行检索 唯一 IP 值列表的查询,该列表按它们最后出现的时间进行过滤。
我正在努力解决的是 unique 部分。我已经对“aggs”进行了一些试验,它可以获取唯一的值,但我想不出一种方法来仍然让结果按上次出现的时间排序。
我在下面包含了我的查询,我的目标是限制结果,以便在仍然按 @timestamp 排序时不返回重复的“src_ip”,或者至少检索最后找到的值。
Get _search
{
"query": {
"match": {
"type": "CitrixHoneypot|Ciscoasa"
}
},
"_source": ["@timestamp", "src_ip", "type"],
"sort": [
{
"@timestamp": {
"order": "desc",
"unmapped_type": "boolean"
}
}
],
"size": 500
}
非常感谢任何帮助。
您请求的查询如下所示:
{
"query": {
"match": {
"type": "CitrixHoneypot|Ciscoasa"
}
},
"aggs": {
"unique_ip": {
"terms": {
"field": "src_ip",
"size": 500
},"aggs": {
"top_hits": {
"top_hits": {
"sort": [{"@timestamp":{ "order": "desc" }}],
"size": 1
}
}
}
}
},"size": 0
}
在此查询中,首先您找到唯一的 src_ips
,然后您 select 使用热门匹配的最新文档并排序 @timestamp
。
你好。
我已经为这个问题苦苦挣扎了一段时间,因为我是 ElasticSearch 的新手,非常感谢一些指导或建议。
我的目标是执行检索 唯一 IP 值列表的查询,该列表按它们最后出现的时间进行过滤。
我正在努力解决的是 unique 部分。我已经对“aggs”进行了一些试验,它可以获取唯一的值,但我想不出一种方法来仍然让结果按上次出现的时间排序。
我在下面包含了我的查询,我的目标是限制结果,以便在仍然按 @timestamp 排序时不返回重复的“src_ip”,或者至少检索最后找到的值。
Get _search
{
"query": {
"match": {
"type": "CitrixHoneypot|Ciscoasa"
}
},
"_source": ["@timestamp", "src_ip", "type"],
"sort": [
{
"@timestamp": {
"order": "desc",
"unmapped_type": "boolean"
}
}
],
"size": 500
}
非常感谢任何帮助。
您请求的查询如下所示:
{
"query": {
"match": {
"type": "CitrixHoneypot|Ciscoasa"
}
},
"aggs": {
"unique_ip": {
"terms": {
"field": "src_ip",
"size": 500
},"aggs": {
"top_hits": {
"top_hits": {
"sort": [{"@timestamp":{ "order": "desc" }}],
"size": 1
}
}
}
}
},"size": 0
}
在此查询中,首先您找到唯一的 src_ips
,然后您 select 使用热门匹配的最新文档并排序 @timestamp
。