我正在编写一个应用程序,通过使用批量的一个元素调用 Azure 搜索 API 来同步数据更新(如 this answer 中所述)。作为备份,我们有一个 search indexer每小时运行一次。这样,如果通过 API 更新索引失败或者我们忘记在代码中触发它,则更改最终将同步到搜索索引。
我的问题是:搜索索引器是否有可能覆盖 API 更新,如下例所示?
- 搜索索引器从数据库复制一行
- 应用程序更新数据库中的同一行,然后通过 API 调用将其同步到搜索索引
- 搜索索引器根据过时的数据副本更新索引中的文档
最佳答案
是的,索引器更新文档和 API 调用更新文档之间当然可能存在竞争条件。您可以通过推迟 API 更新直至索引器完成运行或仅使用一种机制(索引器或 API)来缓解这种情况。
关于c# - Azure 搜索索引器能否覆盖通过 API 发布的更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53847675/