对加密数据进行模糊搜索

时间:2019-01-30 00:27:47

标签: elasticsearch

我有一个架构,其中必须对几个字段进行加密。我想知道是否有人这样做或可以将我指向某个资源,以了解使用Elasticsearch我是否可以对这种加密数据实施模糊搜索。

例如,当我有

{ 
  "last_name": "encryptedLastName",
}

和2个文档,其中lastName被加密,一个文档的加密值是last_name=Ferdinand,另一个文档的加密值是last_name=Ferdadian

例如,只要levenstein距离> 80,我希望能够使用字符串进行搜索并获取两个文档。这有可能吗?

另一方面,我还希望能够对加密数据进行“喜欢”搜索,例如last_name like 'Fer%'

2 个答案:

答案 0 :(得分:1)

您可以在加密数据上建立索引,但这将意味着索引中的数据将不会被加密。在数据库本身中对其进行加密的相同原因很可能意味着它们也不能在Elasticsearch索引中也不被加密。

如果加密效果很好,则加密后相似的值看起来会完全不同。

答案 1 :(得分:0)

通常(并非特定于Elasticsearch)

要搜索加密的数据,您需要对其解密。如果要使其快速,则需要保留解密的索引。您既可以进行快速搜索,也可以进行良好的加密,但不能同时进行。