我一直在使用 FOSElasticaBundle 将我的文档(它们是来自通过 Doctrine 保存在数据库中的 Symfony 项目的实体)索引到 Elastic Search 中。FOSElastica 在所有文档之后进行自动映射和索引。问题是我想对每个文档(已经编入索引的和将要编入索引的文件)应用一些操作,所以管道和无痛似乎是一个很好的解决方案。但是,我无法理解如何将管道应用于已编入索引的文档,您知道如何操作吗?我已经看到您可以在 ES 请求后添加“pipeline=my_pipeline_name”,但您可以为单个文档执行此操作,而我希望它影响所有文档。
2 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
您可以在将数据从一个索引移动到另一个索引时使用Pipeline。
您需要使用Reindex API,以便在movement/ingestion_process
从一个索引到另一个索引期间对数据执行它。
注意:这是索引级别的操作,这意味着它会影响所有文档。
以下是步骤摘要:
创建一个
temporary_index
,Reindex from
source_index
以temporary_index
使用Reindex API。还包括管道(下面提供的示例查询)删除并重新创建
source_index
. 确保在创建索引时也包含映射。在没有管道的情况下使用
source_index
目标名称和temporary_index
源名称执行相同的查询
以下是您如何通过管道使用 Reindex API
POST _reindex
{
"source": {
"index": "source_index_name"
},
"dest": {
"index": "temporary_index",
"pipeline": "some_ingest_pipeline"
}
}
让我知道这是否有帮助!
- 2 回答
- 0 关注
- 172 浏览
添加回答
举报
0/150
提交
取消