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

如何将一些ElasticSearch数据复制到新索引

商飞尘
2023-03-14

假设我的ElasticSearch中有电影数据,我创建了它们,如下所示:

curl -XPUT "http://192.168.0.2:9200/movies/movie/1" -d'
{
    "title": "The Godfather",
    "director": "Francis Ford Coppola",
    "year": 1972
}'

我有很多不同年代的电影。我想复制某一年(1972年)的所有电影,并将它们复制到一个新的索引“70sMovies”,但我不知道怎么做。

共有3个答案

谢泉
2023-03-14

查看背包:https://github.com/jprante/elasticsearch-knapsack

一旦安装了插件并开始工作,就可以通过查询导出部分索引。例如:

curl -XPOST 'localhost:9200/test/test/_export' -d '{
"query" : {
    "match" : {
        "myfield" : "myvalue"
    }
},
"fields" : [ "_parent", "_source" ]
}'

这将创建一个仅包含查询结果的tarball,然后可以将其导入到另一个索引中。

锺离良哲
2023-03-14

最好的方法是使用elasticsearch转储工具https://github.com/taskrabbit/elasticsearch-dump.

我使用的真实世界示例:

elasticdump \
  --input=http://localhost:9700/.kibana \
  --output=http://localhost:9700/.kibana_read_only \
  --type=mapping
elasticdump \
  --input=http://localhost:9700/.kibana \
  --output=http://localhost:9700/.kibana_read_only \
  --type=data
李昊苍
2023-03-14

自ElasticSearch 2.3以来,您现在可以使用内置的_reindexAPI

例如:

POST /_reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}

或仅通过添加筛选器/查询的特定部分

POST /_reindex
{
  "source": {
    "index": "twitter",
    "query": {
      "term": {
        "user": "kimchy"
      }
    }
  },
  "dest": {
    "index": "new_twitter"
  }
}

阅读更多:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html

 类似资料:
  • 问题内容: 假设我的ElasticSearch中有电影数据,并且我这样创建它们: 我有一堆不同年代的电影。我想复制特定年份(即1972年)中的所有电影,然后将它们复制到新的索引“ 70sMovies”,但是我看不到该怎么做。 问题答案: 从ElasticSearch 2.3开始,您现在可以使用内置的API 例如: 或仅通过添加过滤器/查询的特定部分 了解更多:https://www.elastic

  • 问题内容: 我用映射创建了一个新索引。其中存储了500 000个文档。 我想更改索引的映射,但是在elasticsearch中是不可能的。所以我用新的新映射创建了另一个索引,现在我正尝试将文档从旧索引复制到新索引。 我正在使用扫描和滚动类型从旧索引中检索文档并将其复制到新索引。复制需要花费更多时间,并且系统运行缓慢。 下面是我正在使用的代码。 问题答案: 您不必编写类似的代码。周围有一些出色的工具

  • 例如:来自https://localhost:9200将索引“index_name”设置为https://localhost:9300对于索引“index2_name” 建议在复制数据之前使用映射,映射文章:https://www.elastic.co/guide/en/elasticsearch/reference/current/explicit-mapping.html

  • > 当我请求一个具有整个主键的行时,Cassandra是否会从SSTable中获取该分区的所有行并将它们合并到memetable,然后过滤所请求的行?或者它可以找到具有聚类键的行,并且只检索一行到memetable? SSTable如何存储数据(逐行或逐列,为什么有些SSTable只能包含一列)?如果我只请求一列,那么Cassandra能找到那个特定列的位置并只返回那个列吗?

  • 问题内容: 我的产品使用SQL Server数据库- 每个客户端在自己的Intranet上都有自己的部署实例。该数据库大约有200个表。它们中的大多数是只有几行的配置表,但是有几个事务数据表可能有几百万行。通常,我需要对客户的配置问题进行故障排除,因此我需要他们的数据库的副本才能在我的开发系统上本地使用…但是由于交易数据的原因,该副本可能很大,这使得客户很难发送我可以备份。我需要一种方法来备份/复

  • 问题内容: 在不修改数组a地址的情况下,将数据从数组b复制到数组a的最快方法是什么。我需要这样做,因为外部库(PyFFTW)使用了指向无法更改的数组的指针。 例如: 是否可以不循环地进行? 问题答案: 我相信 将快速制作出深层副本。正如Funsi所提到的,最新版本的numpy也具有该功能。