python-3.x 在Elasticsearch中将特定索引数据移动到新索引中

x8goxv8g  于 2022-12-15  发布在  Python
关注(0)|答案(1)|浏览(100)

我有几百万个文档,我需要将它们移到一个新的索引中,但是有一个条件是文档应该流入索引中。假设我有一个名为offset的字段,需要查询它。我需要查询的值是:[1,7,99,32,.....,10000432](非常大的列表)在偏移字段中。
有没有人想知道我如何移动特定的文档,以及列表中的那些值到一个新的ElasticSearch索引中?我的第一个想法是用查询重新索引,但没有偏移列表的模式。
它会是一个Python循环把每个文档附加到一个新的索引吗?寻找任何指导。谢谢

dxxyhpgq

dxxyhpgq1#

文档真的很大吗?或者您可以将它们添加到一个jsonl文件中以进行批量接收?选择器列表是什么形式的,显示为“[1,7,99,32,.....,10000432]"?
我想用Pandas来做,但这里有一个ES术语:无论你做什么,一定要使用_bulk API,否则工作永远不会完成。
您可以根据GET my_index/_search?_file=“myquery_file”中的文件运行查询
您可以将所有ID放入一个文件myquery_file中,如下所示:

{
  "query": {
    "ids" : {
      "values" : ["1", "4", "100"]
    }
  },
  "format": "jsonl"
}

并作为json 1输出以摄取。
您可以对reindex API执行上述操作。

{
  "source": {
    "index": "source",
    **"query": {
      "match": {
        "company": "cat"
      }
    }**
  },
  "dest": {
    "index": "dest",
    "routing": "=cat"
  }
}

相关问题