如何对多页的加密文档进行全文搜索?

How to implement full text search on encrypted document having several pages?

我有数百个文档,每个文档都有好几页。用户可以在文档中搜索单词或句子。现在我期待 return 中包含搜索文本的所有文件。

目前正在使用 Angular 作为前端的 rest API。

我刚检查过Elastic search

Redisearch Full text search

我喜欢 redisearch 搜索,但我不确定它有多安全,因为它首先在实际数据上创建索引。

我的观点是:

  1. 使用这两种搜索方法的优缺点是什么。
  2. 如果文件被加密,它们会工作吗
  3. 是否有任何其他框架可以提供非常安全的加密文档并在文件加密时搜索实际数据(显然是先解密然后动态搜索)

经过这么多天的 Elastic 搜索和 Redis 文档,这是我的见解:

用于加密内容的 Redis 和 ElaticSearch

  • 与 Elasticsearch 相比,Redis 搜索速度更快,但 Redis 搜索的社区支持较少。 kibana、logstash 等 Elasticsearch 工具对查看和分析数据非常有帮助。

  • 对于加密内容,使用带有 NOINDEX 选项的重新搜索并将您的主要数据存储在加密数据存储中。对于我的情况,主数据存储是 s3 存储桶。 RediSearch只需要存储倒排索引。

  • AWS Elasticache 提供 lambda 函数,可以创建静态加密数据的索引。加密仅针对静态数据对象,而非元数据。 因此,您可以对元数据执行搜索,但它不会是全文。 对于全文搜索,将数据显式传递给 Elasticsearch 以进行索引。

Check this link

AWS 云搜索选项

  • 另一种选择是 AWS 云搜索。 CloudSearch 能够使用服务器端加密从存储桶中索引项目。 您必须传递正确的凭据才能访问数据。

check this link2:

  • 虽然 AWS 云搜索很昂贵。他们将对执行的所有操作收费。