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