2016-04-21 62 views
5

我使用Elasticsearch Bulk Index來更新文檔的某些統計信息,但可能發生我試圖更新的文檔不存在 - 在這種情況下,我希望它不做任何事情。Elasticsearch批量索引 - 僅在存在時更新

我不希望它在這種情況下創建文檔。

我還沒有找到任何文檔,或者可能錯過了。

我現在的行爲(在這種情況下,它創建文檔):

{ 
    update: { 
     _index: "index1", 
     _type: "interaction", 
     _id: item.id 
    } 
}, 
{ 
    script: { 
     file: "update-stats", 
     lang: "groovy", 
     params: { 
      newCommentsCount: newRetweetCount, 
     } 
    }, 
    upsert: normalizedItem 
} 

如何更新文件,但必須存在,否則什麼?

謝謝

回答

0

不使用upsert並使用正常更新。 如果更新時文檔不存在,則更新將失敗。 它應該適合你。

+0

沒有upsert子句的更新將失敗並創建一個異常。如果一個應用程序在設計上需要這種僅更新存在功能,那麼很多異常都會以這種方式拋出。給出一些SO問答,指出例外的緩慢程度,這種解決方案不會導致性能問題嗎? – Aaron

相關問題