首页 > 解决方案 > 从 Elasticsearch 中同步删除文档

问题描述

我正在使用 Olivere/elastic 在 Go 中使用 elasticsearch。这是我的代码:

// (1) delete document 
_, err := e.client.Delete().Index(index).Type("entity").
    Id(id).Do(e.ctx)

if err != nil {
    fmt.Println(err.Error())
}

// (2) get all documents 
result, err := e.client.Search().Index(index).From(1).Size(100).Do(e.ctx)
if err != nil {
    log.Println(err)
}

fmt.Println(result.TotalHits())

// (3) wait
time.Sleep(3 * time.Second)

// (4) get all documents
result, err = e.client.Search().Index(index).From(1).Size(100).Do(e.ctx)
if err != nil {
    log.Println(err)
}

fmt.Println(result.TotalHits())

我在这里:

现在在步骤 (2) 上,我得到的文件比步骤 (4) 多一份。看起来文档在 Elastic 中被删除了一些延迟,我正在寻找同步删除文档的方法。

标签: elasticsearchgo

解决方案


_, err := e.client.Delete().Index(index).Type("entity").
    Id(id).Refresh("true").Do(e.ctx)

刷新(“真”)


推荐阅读