猿问

如何在已编入索引的文档上使用摄取管道?

我一直在使用 FOSElasticaBundle 将我的文档(它们是来自通过 Doctrine 保存在数据库中的 Symfony 项目的实体)索引到 Elastic Search 中。FOSElastica 在所有文档之后进行自动映射和索引。

问题是我想对每个文档(已经编入索引的和将要编入索引的文件)应用一些操作,所以管道和无痛似乎是一个很好的解决方案。

但是,我无法理解如何将管道应用于已编入索引的文档,您知道如何操作吗?

我已经看到您可以在 ES 请求后添加“pipeline=my_pipeline_name”,但您可以为单个文档执行此操作,而我希望它影响所有文档。


慕娘9325324
浏览 173回答 2
2回答

杨__羊羊

您可以在将数据从一个索引移动到另一个索引时使用Pipeline。您需要使用Reindex API,以便在movement/ingestion_process从一个索引到另一个索引期间对数据执行它。注意:这是索引级别的操作,这意味着它会影响所有文档。以下是步骤摘要:创建一个temporary_index,Reindex fromsource_index以temporary_index使用Reindex API。还包括管道(下面提供的示例查询)删除并重新创建source_index. 确保在创建索引时也包含映射。在没有管道的情况下使用source_index目标名称和temporary_index源名称执行相同的查询以下是您如何通过管道使用 Reindex APIPOST _reindex{  "source": {    "index": "source_index_name"  },  "dest": {    "index": "temporary_index",    "pipeline": "some_ingest_pipeline"  }}让我知道这是否有帮助!
随时随地看视频慕课网APP
我要回答