【发布时间】:2021-01-19 18:08:51
【问题描述】:
我所拥有的: 用于全文搜索的弹性搜索数据库。
我的要求是:在给定的elasticsearch索引中,我需要检测一些敏感数据,比如iban no、credit card no、passport no、social security no、地址等,并将它们报告给客户端。将有复选框作为输入参数。例如,客户可以选择信用卡号和护照号,然后点击检测按钮。之后,系统将开始扫描索引,并报告包括信用卡号和护照号在内的文件。它旨在拥有超过 200 种敏感数据类型,并且客户端将能够对这些类型进行多项选择。
我做了什么:我创建了一个 C# 应用程序并使用 Nest 库进行 ES 查询。为了检测每种敏感数据类型,我在我的 C# 应用程序中创建了正则表达式和一些特殊的验证规则,它们适用于手动输入的字符串。
在我的 C# 应用程序中,我使用滚动 API 创建了一个匹配所有查询。当用户点击检测按钮时,我的应用程序正在迭代从滚动 api 返回的所有源记录,并且对于每条记录,应用程序正在根据客户端的选择执行敏感数据查找器代码。
这里的问题是搜索 ES 索引中的所有源记录,提取敏感数据并在大量文档的情况下尽可能快地准备报告。我知道 ES 是为全文搜索而设计的,而不是为扫描整个系统和带来数据而设计的。但是现在所有数据都在elasticsearch中,我需要使用这个db来进行检测操作。
我想知道我是否可以用一种不同的有效方式来做到这一点。这个问题可以通过编写没有 C# 应用程序的弹性搜索插件来解决吗?或者有没有更好的解决方案来扫描 ES 索引中的整个源数据?
感谢您的建议。
【问题讨论】:
标签: elasticsearch nest elasticsearch-plugin