如何更改 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 无论如何必须做的根本不同的事情。
我是 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 无论如何必须做的根本不同的事情。