有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何更改Elasticsearch上的别名值?

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

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

4444-444-777。。。。等等,

然后我有了索引的别名,比如别名1

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

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

你能告诉我怎么做吗


共 (1) 个答案

  1. # 1 楼答案

    用别名恐怕不行。别名在查询中有functionality to filter,但这只是一个包含/排除过滤器。例如,alias1可以是一个过滤的别名,它只允许搜索查询查看user1文档

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

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

    脚本字段

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

    变换

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

    您的应用程序代码

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