我是Elasticsearch的新手,我想知道我们是否有办法改变别名索引的价值?我会给你一些例子;
例如,我们有一个保存信用卡号的索引;
4444-444-777 ....等等,
然后我有一个该索引的别名,比方说alias1,
我想要做的是,一旦我调用alias1,用户就会自动看到;
xxxx-xxx-777而不是4444-444-777。
你能告诉我一些如何做的想法吗?
答案 0 :(得分:1)
我担心别名是不可能的。别名有functionality to filter查询,但这只是一个包含/排除过滤器。例如,alias1
可以是过滤后的别名,只允许搜索查询查看user1
个文档。
别名没有任何实际修改或操纵数据的能力。
有一些选择,但它们都有权衡。
脚本字段
您可以使用Script Fields提供"虚拟"领域。基本上,您运行一个加载某些字段的脚本,然后执行您需要的任何操作(例如4444-444-777
- > xxxx-xxx-777
)。然后将其作为搜索结果中的额外字段返回给您。需要注意的是,原始数据仍然可以在原始_source
中看到,因此您的应用需要确保不会暴露。
<强>变换强>
如果您不希望返回原始数据,则可以执行Transform,这会在索引之前对_source
文档进行实际更改。这意味着您从搜索结果中获取的数据将被预先处理...但您将永远无法访问原始数据(因为它已被转换)。
您的应用代码
最好在您的应用程序代码中执行此过滤。更简单,更容易改变,没有做任何与ES必须做的根本不同的事情。