当前位置: 首页 > 面试题库 >

是否可以使用ElasticSearch别名写入多个索引?

东门新立
2023-03-14
问题内容

该ElasticSearch文件上写着:

别名也可以映射到多个索引,并且在指定别名时,别名将自动扩展为别名索引。

但是,当我尝试为2个索引添加别名并向两个索引写入时,似乎都没有随文档更新。如果删除其中一个别名,它将正确地写入仍然存在的别名。

具有多个写别名失败:

$ curl -XGET 'http://localhost:9200/_aliases'

结果:

{
  "dev_01": {
    "aliases": {
      "dev_read": {},
      "dev_write": {}
    }
  },
  "dev": {
    "aliases": {
      "dev_write": {}
    }
  }
}

使用单个别名:

$ curl -XGET 'http://localhost:9200/_aliases'

结果:

{
  "dev_01": {
    "aliases": {
      "dev_read": {},
      "dev_write": {}
    }
  },
  "dev": {
    "aliases": {}
  }
}

Elasticsearch是否支持写入多个索引?如果别名指向多个索引,是否为只读?


问题答案:

答案是不

所以看来我应该更深入地分析这声蜂鸣声,但是我的客户从es得到的响应是:

ElasticSearchIllegalArgumentException [Alias
[dev_write]有多个与其关联的索引[[dev_01,dev]],无法执行单个索引操作

只是希望文档能更明确一些,因为它们让我有些困惑

乍一看似乎意味着您可以:

索引别名API允许对别名使用名称进行别名, 所有 API都会自动将别名转换为实际的索引名称。别名也可以映射到多个索引…

将一个别名与多个索引相关联只是几个添加操作…

在页面的更下方,您将知道您无法执行以下操作:

索引指向一个以上索引的别名是错误的。



 类似资料:
  • 问题内容: 我有这个别名,我想指向60个索引。在21个索引处,我开始获取“拒绝执行”异常。 这是因为别名API中的索引限制为20吗? 问题答案: 假设每个索引有5个分片,针对21个索引的请求可能会生成约105个分片请求,其中32个请求发送到池中的线程,而73个请求进入队列。目前,队列中仅剩27个元素。因此,如果另一个针对6个或更多索引(30个分片)的请求到达,则某些分片请求将因执行被拒绝异常而被拒

  • 我知道在elasticsearch中没有连接索引的选项,但我需要找到一种方法来解决这个问题: 我有两个索引,比如A,B IndexA的信息像field d1、field d2、field d3 IndexB有field d4、field d5、field d6 如果我将按查询字段5(在本例中为“test”)进行搜索,我希望树中的所有关系如下: 匹配IndexA中与“field2”(来自IndexA

  • API网关中的一个阶段是否可以根据API网关URL调用不同的Lambda别名?到目前为止,我所发现的只是您可以使用stage变量将给定的API网关stage指向单个Lambda别名的地方。我想要的是类似于PROD阶段的东西,以便能够调用不同的别名。示例调用: https://xyz.execute-api.us-east-1.amazonaws.com/prod/v1

  • 我有几份产品数据表。每个文件都是一个单独的文件。我想做的是使用iText根据Web表单的答案生成一组摘要/建议的操作,然后将所有相关的数据表附加到这些操作中。这样,我只需要在浏览器中打开一个新选项卡来打印所有信息,而不是为摘要打开一个选项卡,为所需的每个数据表打开一个选项卡。 那么,使用iText可以做到这一点吗?

  • 我需要一个不可重入的读写锁,因为锁可能由获取它的线程以外的线程释放。(我意识到这一点时,我开始间歇性地获取非法监视器状态异常。) 我不确定不可重入是否是正确的术语。ReentrantLock允许当前持有锁的线程再次获取它。我不想要这种行为,因此我称之为“不可重入”。 上下文是我有一个使用线程池的套接字服务器。每个连接没有一个线程。请求可能由不同的线程处理。客户端连接可能需要在一个请求中锁定,在另一

  • 问题内容: 我有一个带有3个索引的elasticsearch集群: 因此,现在我需要运行处理多个索引的查询。 例如: 获取在页面X中注册的用户的性别。 ( 要获取此信息,我需要来自多个索引的信息。 ) 这可能吗?也许整合Hadoop? 问题答案: 在Elasticsearch本身中,这非常容易!任何时候您指定索引时,都可以用逗号分隔其他索引。 您也可以使用_all搜索所有索引。 这是来自Elast