2016-04-21 60 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

相关问题