我使用Elasticsearch来存储系统漏洞。现在我的典型条目是
{
_id: somenadomid
_source: {
"ip": "10.10.10.10",
"vuln_name": "v1",
"vuln_type": 1
}这种方法具有简化查询的优点(“带有1类型->的计算机数目”,“聚合”,“漏洞数量”- query_all搜索和相关的total值,.)。
它也有缺点,特别是:
因此,我现正考虑将计划改为“主机”基准:
{
_id: machine1
_source: {
"ip": "10.10.10.10",
"vuln": [
{
"name": "v1",
"type": 1
},
{
"name": "v2",
"type": 1
}
]
}我遇到的问题是,我仍然从根本上查询漏洞,并且不知道如何在查询中“引爆”漏洞。
具体来说(我相信我的问题会被这个系列的查询所吸引),我如何去查询?
type 1的漏洞总数(不是主机--每个主机可以有几个1类型的秃鹫,基本查询将检索作为主机的条目)type 1在name中使用"Microsoft”的漏洞数量)--过滤是针对漏洞的特性而不是针对主机)。发布于 2017-08-01 09:19:52
为了给您一个简单的概述,在Elasticsearch中您有两种方法来管理嵌套数据,您可以使用嵌套对象或内部对象,在场景后面它们是完全不同的。
嵌套类型是对象数据类型的专门版本,它允许对对象数组进行独立的索引和查询。
内部对象是嵌入在父文档中的对象。
有关内部对象和嵌套对象之间的差异的进一步信息,请查看下面的链接。
https://www.elastic.co/blog/managing-relations-inside-elasticsearch
为了查询和聚合(获取总数),请查看以下链接:
查询:https://www.elastic.co/guide/en/elasticsearch/guide/master/nested-objects.html
聚合:https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-aggregation.html
https://stackoverflow.com/questions/45432661
复制相似问题