elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# 验证elasticsearch记录更改

C# 验证elasticsearch记录更改,c#,elasticsearch,nest,C#,elasticsearch,Nest,在弹性搜索中更新或删除记录有时需要一秒钟左右的时间才能完全通过系统,这样新的搜索将显示您所做的更改 是否有某种方法阻止线程,直到弹性“验证”请求的操作已完成 具体示例: 用户转到对象的详细信息页面 用户删除那个对象,我们从数据库中删除,并请求elastic删除它 elastic返回200 OK,表示请求正常 用户被重定向回一个列表页面,在那里我们显示弹性结果,但记录仍然显示 通常在一秒钟之后,如果你刷新它,它会像预期的那样从弹性结果中消失,但这段时间是不确定的。有没有办法调用弹性操作,使其在操作

在弹性搜索中更新或删除记录有时需要一秒钟左右的时间才能完全通过系统,这样新的搜索将显示您所做的更改

是否有某种方法阻止线程,直到弹性“验证”请求的操作已完成

具体示例:

  • 用户转到对象的详细信息页面
  • 用户删除那个对象,我们从数据库中删除,并请求elastic删除它
  • elastic返回200 OK,表示请求正常
  • 用户被重定向回一个列表页面,在那里我们显示弹性结果,但记录仍然显示
  • 通常在一秒钟之后,如果你刷新它,它会像预期的那样从弹性结果中消失,但这段时间是不确定的。有没有办法调用弹性操作,使其在操作完全完成处理之前不会返回200 OK


    我唯一能想到的另一种方法是,在elastic没有返回结果之前,在每个Xms中查询elastic以查找已删除的对象。这让人感觉很不舒服,有人找到了这个用例更好的解决方案吗?

    我想我可能在批量更新的“刷新”选项中找到了一个解决方案(我们几乎所有的操作都使用该选项),但我不确定这是否会导致性能问题。这可能也值得一读:谢谢@val。我们确实在适用的情况下会这样做,比如从列表中删除。但在这种情况下,由于我们将指向一个新页面,因此很难保留这种类型的内容。我认为在我的情况下,使用
    refresh=true
    选项应该是可行的。因为它只是一个用例,我不会将其应用于所有操作,我希望这不会是一个性能问题,我会使用
    refresh=wait\u for
    instead@Val
    wait_for
    的问题是,有时一秒钟太长,因为应用程序会立即返回到elastic以获取数据,而删除的记录仍会返回。谢谢你的建议!