赞
踩
将ES索引【my-index】修改为【my-index-v1】,方便添加索引别名
- PUT /my-index/_settings
- {
- "settings": {
- "index.blocks.write": "true"
- }
- }
POST /my-index/_clone/my-index-v1
- PUT /my-index/_settings
- {
- "settings": {
- "index.blocks.write": "false"
- }
- }
- PUT /my_index-v1/_settings
- {
- "index.number_of_replicas": 2
- }
DELETE /my_index
- POST /_aliases
- {
- "actions": [
- {
- "add": {
- "index": "my_index-v1",
- "alias": "my_index"
- }
- }
- ]
- }
在Elasticsearch中,_reindex和_clone是两个用于处理索引数据的API,但它们之间有一些关键的区别。
_reindex API允许你从一个或多个索引中检索、修改(如果需要的话)并重新索引文档到另一个索引。这是一个非常灵活的操作,因为它允许你在重新索引过程中对数据进行转换或修改。
你可以通过定义source和dest参数来指定要从哪个索引复制数据,以及将数据复制到哪里。
使用_reindex,你还可以通过script字段在重新索引过程中修改文档。
由于_reindex会读取和写入数据,所以它可能会对集群的性能产生影响,特别是在处理大量数据时。
_clone API是Elasticsearch 7.6.0版本中引入的一个功能,它允许你创建一个现有索引的精确副本(克隆)。
使用_clone时,不需要重新索引整个索引的数据,因为Elasticsearch会直接在内部复制索引的段文件。
由于_clone是基于内部段文件的复制,因此它通常比_reindex更快,尤其是在处理大型索引时。
然而,_clone不提供_reindex中的灵活性,例如修改或转换文档的能力。
总结:
_reindex和_clone都可以用于在Elasticsearch中复制索引数据。
_reindex提供了更多的灵活性,允许你在重新索引过程中修改或转换文档,但它可能会更慢,特别是在处理大量数据时。
_clone则是创建现有索引的精确副本,速度更快,但不提供修改或转换文档的能力。
通过POST请求将现有索引别名删除
- POST /_aliases
- {
- "actions": [
- {
- "remove": {
- "index": "my_index-v1",
- "alias": "my_index"
- }
- }
- ]
- }
- PUT your_new_index_name
- {
- "mappings": {
- "properties": {
- "your_field_name": {
- "type": "text"
- }
- }
- }
- }
- POST _reindex
- {
- "source": {
- "index": "your_old_index_name"
- },
- "dest": {
- "index": "your_new_index_name"
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。