当前位置: 首页 > 知识库问答 >
问题:

在ElasticSearch中创建空别名

晋越彬
2023-03-14

我正在开发一个java应用程序来创建elasticSearch索引。索引目前每周在一台开发机器上构建,集群在其他(测试和prod)机器上的现有集群上手动复制。新的方案仍然包括每周从头开始重建指数。

我正在使用5.6.3和Low-High level rest客户端进行更新。经过一些初步的调查(并得到相当多的帮助),我的目标是去一个2(或3)阶段的开发使用别名。

首先,我将在dev上为现有索引(es)命名,将所有新数据写入别名,然后用别名替换索引。我能想到的其他选择是

>

  • 每次重新创建集群,我认为这将是一个相当手动的过程,或者

    重新创建索引并将其移过。由于索引不能重命名(或者我认为,这将会更加笨拙,因为它将涉及到在一台机器上创建索引,从活动机器中删除它们,然后读取它们。目前,我们在集群中有一个节点,因此这将涉及相当长的停机时间(尽管如果别名是一个糟糕的解决方案,我想我们可以添加另一个节点,并一次替换一个节点)。

    那么归结到问题上。我真的想直接创建一个索引的空别名。据我所知,这是不可能的。在其他页面中,这个github的问题。虽然来自一个较旧的版本,但似乎这样的举动会适得其反,而且不是想引入的弹性内容。所以我只是想知道

    1. 我完全看错了设计,或者
    2. 现在有一种方法可以创建空别名或
    3. 是否应该创建一个别名,然后从别名中删除所有文档?
  • 共有1个答案

    暨成双
    2023-03-14

    “添加评论作为答案”:正确。应用程序不必担心数据是来自19号还是20号。应用程序可以简单地指向别名appind。一旦数据还原/加载完成,就可以用单个POST请求将别名从旧索引交换到新索引。您可以在同一请求中使用remove操作和add操作将别名从旧索引交换到新索引

     类似资料:
    • 问题内容: 我正在使用官方elasticsearch npm。在我的节点应用程序中,我正在使用该客户端创建索引,如下所示 我需要为上述索引放入映射,因此,我必须先创建一个空索引(无数据索引),然后必须执行放置映射,然后将数据放入索引。 因此,我必须创建一个空索引,但是在正式的Elasticsearch客户端中,上述方法(create)是用“ ”方法编写的,因此它需要一个主体。 为此,我必须如上所述

    • 问题内容: 我是Elasticsearch的新手,目前正在实现用于搜索的过滤器。到目前为止,我的索引具有以下映射(我已经删除了一些字段): geo_distance字段将在location字段上实现,示例实例如下所示: 即采用geoJSON格式。 我了解我将必须更新索引,以使location字段的类型为,如文档(mapping-geo- point )中所述。似乎我必须删除索引并创建一个新索引,但

    • 我正在设置Filebeat将日志发送到Elasticsearch。这是我的: 我有这个文件: 我期待着这份日志被发送到Elasticsearch。Elasticsearch在localhost的Docker容器中运行,地址为9200。 当我运行filebeat(Docker)时,Elasticsearch中不会创建索引。所以,在基巴纳,我没有看到任何数据。 为什么?Filebeat不应该自动创建索

    • 我试图创建一个安全过滤器,以排除某些用户在ElasticSearch中看到某些文档。例如,如果一个文档包含“abc:123”和“abc:xyz”,那么用户的配置文件中必须同时包含这两个文档才能查看该文档。我们正在使用小胡子模板创建这个动态。我的第一次尝试是这样的: 但是,我很快意识到,这将允许拥有一个控件的用户查看具有多个控件的文档。文档必须具有用户必须匹配的控件的子集。因此,如果用户只有“abc

    • 问题内容: 我有一个用例,需要每月在Elasticsearch中创建索引。这个想法是在月度基础上创建索引,以便它们易于维护并且可以在过期时删除。为此,我使用了spring- batch并有一个月度工作,它将按月基础创建索引以供Elasticsearch使用-Java集成我已经使用了Spring-Data Elasticsearch实现。我现在面临的问题是,我无法弄清楚如何使用Entity对象为索引

    • 问题内容: 我正在将MS Access应用程序(已将表链接到MSSQL Server)迁移到MySQL。 作为克服某些MSAccess表命名问题的方法,我正在寻找一种解决方案以添加一个MySQL表别名,该别名将指向MySQL数据库中的现有表。理想情况下,我想在mysql中创建别名“ dbo_customers”,该别名也指向mysql中的customers表。 需要明确的是,我 不 希望别名这样的