elasticsearch - 在 ElasticSearch 中为审计编制索引
问题描述
有一个基于微服务的架构,其中每个服务都有不同类型的实体。例如:
服务 1:
{
"entity_type": "SKU",
"sku": "123",
"ext_sku": "201",
"store": "1",
"product": "abc",
"timestamp": 1564484862000
}
服务 2:
{
"entity_type": "PRODUCT",
"product": "abc",
"parent": "xyz",
"description": "curd",
"unit_of_measure": "gm",
"quantity": "200",
"timestamp": 1564484863000
}
服务 3:
{
"entity_type": "PRICE",
"meta": {
"store": "1",
"sku": "123"
},
"price": "200",
"currency": "INR",
"timestamp": 1564484962000
}
服务 4:
{
"entity_type": "INVENTORY",
"meta": {
"store": "1",
"sku": "123"
},
"in_stock": true,
"inventory": 10,
"timestamp": 1564484864000
}
我想编写一个由elasticsearch支持的审计服务,它将摄取所有这些实体,并将基于, , ,进行索引。entity_type
store
sku
timestamp
elasticsearch在这里会是一个不错的选择吗?另外,索引将如何工作?因此,例如,如果我搜索store=1
,它应该返回所有具有store
as的不同实体1
。其次,我能否获得 2 之间的所有实体timestamps
?
ES 和 Kibana(可视化)在这里会是不错的选择吗?
解决方案
是的。您的用例几乎与过滤器上下文下的文档中描述的完全一样:
在过滤器上下文中,查询子句回答“此文档与此查询子句匹配吗?”的问题。答案很简单,是或否——不计算分数。过滤上下文主要用于过滤结构化数据,例如
- 这个时间戳是否在 2015 年到 2016 年的范围内?
- 状态字段是否设置为
published
?
推荐阅读
- reactjs - 无法在反应状态下键入数组?
- python-3.x - 用pyusb读取数据
- java - 如何将我的 HashMap 的 ID 与我的微调器值进行比较
- typescript - 返回函数时无法推断类型
- c - 为什么 printf 不直接打印 C 中的变量?
- azure - 在 Azure Devops 中为单个团队成员创建燃尽图
- wordpress - wordpress:自动注销
- java - 在java中创建两个用于支票和储蓄帐户的子类
- python-3.x - 如何从 TPR 和 FPR 中查找和绘制 AUC 分数
- python - 通过 cv2 python 脚本发送 ROS 消息