在弹性搜索中重新索引时,“查询”中的“大小”没有影响
No effect of “size” in ‘query’ while reindexing in elasticsearch
我一直在使用 logstash 将一个索引迁移到另一个。我最近尝试重新索引本地环境中大型数据集中的一定数量的数据。所以我尝试使用以下配置进行迁移:
input{
elasticsearch{
hosts=>"localhost:9200"
index=>"old_indexindex"
query=>'{"query":{"match_all":{}},"size":10 }'
}
}filter{
mutate{
remove_field=>[
"@version",
"@timestamp"
]
}
}output{
elasticsearch{
hosts=>"localhost:9200"
index=>"new_index"
document_type=>"contact"
manage_template=>false
document_id=>"%{contactId}"
}
}
但是这会将 old_index 中的所有文档重新编入索引到 new_index,而我期待的是只有 10 个文档要在 new_index 中重新编制索引。
我是否遗漏了一些将 logstash 与 elasticsearch 结合使用的概念?
elasticsearch
输入不进行常规搜索,而是进行 scan/scroll 搜索类型。这意味着将从索引中检索所有数据,size
参数的作用仅用于定义 每次滚动期间将获取多少数据 ,而不是定义多少数据将被一并提取。
另外请注意,查询中的 size
参数本身没有任何作用。您需要使用 elasticsearch
输入的 size
parameter 而不是在查询中指定它。
input{
elasticsearch{
hosts=> "localhost:9200"
index=> "old_index"
query=> '*'
size => 10 <--- size goes here
}
}
也就是说,如果您是 运行 ES 2.3 或更高版本,可以使用 Reindex API 实现您想要的效果,如下所示:
POST /_reindex
{
"size": 10,
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
我一直在使用 logstash 将一个索引迁移到另一个。我最近尝试重新索引本地环境中大型数据集中的一定数量的数据。所以我尝试使用以下配置进行迁移:
input{
elasticsearch{
hosts=>"localhost:9200"
index=>"old_indexindex"
query=>'{"query":{"match_all":{}},"size":10 }'
}
}filter{
mutate{
remove_field=>[
"@version",
"@timestamp"
]
}
}output{
elasticsearch{
hosts=>"localhost:9200"
index=>"new_index"
document_type=>"contact"
manage_template=>false
document_id=>"%{contactId}"
}
}
但是这会将 old_index 中的所有文档重新编入索引到 new_index,而我期待的是只有 10 个文档要在 new_index 中重新编制索引。 我是否遗漏了一些将 logstash 与 elasticsearch 结合使用的概念?
elasticsearch
输入不进行常规搜索,而是进行 scan/scroll 搜索类型。这意味着将从索引中检索所有数据,size
参数的作用仅用于定义 每次滚动期间将获取多少数据 ,而不是定义多少数据将被一并提取。
另外请注意,查询中的 size
参数本身没有任何作用。您需要使用 elasticsearch
输入的 size
parameter 而不是在查询中指定它。
input{
elasticsearch{
hosts=> "localhost:9200"
index=> "old_index"
query=> '*'
size => 10 <--- size goes here
}
}
也就是说,如果您是 运行 ES 2.3 或更高版本,可以使用 Reindex API 实现您想要的效果,如下所示:
POST /_reindex
{
"size": 10,
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}