elasticsearch - 从 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())
我在这里:
- 删除文件
- 从集合中获取所有文档
- 等待 3 秒
- 从集合中获取相同的文档
现在在步骤 (2) 上,我得到的文件比步骤 (4) 多一份。看起来文档在 Elastic 中被删除了一些延迟,我正在寻找同步删除文档的方法。
解决方案
_, err := e.client.Delete().Index(index).Type("entity").
Id(id).Refresh("true").Do(e.ctx)
刷新(“真”)
推荐阅读
- r - 如何在 Shiny R 中保存编辑
- javascript - 根据在 Javascript 中单击的链接选择单选输入
- java - 删除 Java 结果集中的重复行
- php - CakePHP 3.x - toArray() on null
- php - PHP - 如何将 for 循环的结果写入文件
- javascript - 使用请求承诺时来自 Azure 的错误
- c# - 如何通过代码发送本地用户凭据,以便窗口应用程序可以在本地用户上下文中运行
- cmd - cmd中的颤振错误
- javascript - Firestore:多个“数组包含”
- rabbitmq - spring amqp 在不需要时关闭兔子监听器