如何更改Elasticsearch上的别名值?

时间:2015-03-16 15:31:38

标签: java alias elasticsearch

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

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

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

然后我有一个该索引的别名,比方说alias1,

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

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

你能告诉我一些如何做的想法吗?

1 个答案:

答案 0 :(得分:1)

我担心别名是不可能的。别名有functionality to filter查询,但这只是一个包含/排除过滤器。例如,alias1可以是过滤后的别名,只允许搜索查询查看user1个文档。

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

有一些选择,但它们都有权衡。

脚本字段

您可以使用Script Fields提供"虚拟"领域。基本上,您运行一个加载某些字段的脚本,然后执行您需要的任何操作(例如4444-444-777 - > xxxx-xxx-777)。然后将其作为搜索结果中的额外字段返回给您。需要注意的是,原始数据仍然可以在原始_source中看到,因此您的应用需要确保不会暴露。

<强>变换

如果您不希望返回原始数据,则可以执行Transform,这会在索引之前对_source文档进行实际更改。这意味着您从搜索结果中获取的数据将被预先处理...但您将永远无法访问原始数据(因为它已被转换)。

您的应用代码

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