在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

ES可以通过别名来增加或者删除数据吗,别名只对应了一个索引,该如何操作呢

Elasticsearch | 作者 laohan | 发布于2020年10月22日 | 阅读数:7918

ES可以通过别名来增加、更新、或者删除数据吗,一个别名只对应了一个索引,请大神指点,可以吗,可以的话怎么做呀。ES可以通过别名来增加、更新、或者删除数据吗,一个别名只对应了一个索引,请大神指点,可以吗,可以的话怎么做呀。
已邀请:

God_lockin

赞同来自: Charele laohan

别名你可以认为是索引的指针,如果一个别名指向一个索引,那你对别名进行的数据增删改查和对这个索引进行的增删改查是一样的

BKing - Double non. Open source software and dreamer (English Français Japanese Korean ) learners

赞同来自: shuhaijun laohan

可以的。如果为一个索引设置了别名,对别名的修改也相继会影响这个索引。你可以测试如下例子,这样对你理解有帮助。
#创建测试样例
POST /test_index/_bulk
{"index":{"_id":1}}
{"name":"Bking","age":"18"}
{"index":{"_id":2}}
{"name":"Tom","age":"18"}

#为索引创建别名
POST /_aliases
{
"actions": [
{
"add": {
"index": "test_index",
"alias": "my_alias"
}
}
]
}

#查找
GET my_alias/_search
{
"query": {
"match": {
"name": "BKing"
}
}
}

#删除
DELETE my_alias/_doc/2
#验证是否已经删除
GET my_alias/_doc/2

#增加
POST my_alias/_doc/3
{
"name":"Jack",
"age":"18"
}

#通过索引或者别名查找数据都是相同的
GET my_alias/_search
GET test_index/_search
同时,你也可以为多个索引设置相同的别名,在为多个索引设置相同别名的时候。需要注意下:
如果你想要修改别名的时候,也想修改索引那么,在设置索引的时候,请在配置别名的时候,同时加上这个参数(is_write_index = true)。默认是 false。例子如下:
#为索引创建别名
POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "test_index",
        "alias": "my_alias",
        "is_write_index":true
      }
    },
    {
      "add": {
        "index": "test_index01",
        "alias": "my_alias"
      }
    }
  ]
}
希望这些回答对你有所帮助~
 
 
 

JiangJibo - 喊我雷锋

赞同来自: laohan

可以的啊,在创建索引的时候设置好别名,使用时用别名,es服务端会通过索引名称找别名的。
但别名一般用于一对多这种映射,如果一个别名对应一个索引那就失去了别名的作用了,没多少意义

要回复问题请先登录注册