我一直在使用 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 關注
- 210 瀏覽
添加回答
舉報
0/150
提交
取消