如何更改 Elasticsearch 上的别名值?

How to change the alias value on Elasticsearch?

我是 Elasticsearch 的新手,我想知道我们是否有办法更改别名索引的值?我会给你举个例子;

例如,我们有一个包含信用卡号的索引;

4444-444-777 ....等等,

然后我有那个索引的别名,比如说 alias1,

我想做的是,一旦我调用alias1,用户就会自动看到;

xxxx-xxx-777 而不是 4444-444-777。

你能给我一些想法吗?

恐怕别名无法做到这一点。别名有 functionality to filter 查询,但这只是一个包含/排除过滤器。例如,alias1 可能是一个过滤别名,只允许搜索查询查看 user1 个文档。

别名没有任何实际修改或操作数据的能力。

有一些选择,但它们都需要权衡取舍。

脚本字段

您可以使用 Script Fields 提供 "virtual" 字段。本质上,你 运行 一个加载一些字段的脚本,然后执行你需要的任何操作(例如 4444-444-777 -> xxxx-xxx-777)。然后它会作为搜索结果中的额外字段返回给您。需要注意的是,原始数据在原始 _source 中仍然可见,因此您的应用需要确保未公开这些数据。

变换

如果您不想返回原始数据,您可以执行 Transform,这将在 _source 文档被索引之前对其进行物理更改。这意味着你从搜索结果中得到的数据将被预先处理过...但你将永远无法访问原始数据(因为它已经被转换)。

您的申请代码

最好只在您的应用程序代码中执行此过滤。更简单,更容易改变,没有做任何与 ES 无论如何必须做的根本不同的事情。