繁体   English   中英

ElasticSearch查询结果是否已缓存?

[英]Are ElasticSearch query results cached?

我正在使用ElasticSearch 2.3和ASP.NET Web应用程序。 我正在使用C# HttpClient通过其REST API调用ElasticSearch。

尝试将新值添加到数组时遇到问题。

本质上是我正在执行的查询:

步骤1:取得备忘

POST /notes/note/_search
{
  "query" : {
    "term" : { "_id" : 1 }
  }
}

只有一个便笺,结果显示该便笺包含一个空的附件数组

步骤2:更新注释附件数组

POST: /notes/note/1/_update
{
   "doc" : { 
      "Attachments" : [ "Test" ]
   }
}

步骤3:再次取得记录

POST: /notes/note/_search
{
  "query" : {
    "term" : { "_id" : 1 }
  }
}

结果显示,笔记仍包含一个空的Attachments数组

但是,当我从Kibana搜索/ MatchAll时,我看到Attachments数组已更新为新项目。 但是,从ASP.NET运行所有这些步骤时,在更新后立即搜索更新的文档时,我没有得到更新的文档。

这是某种缓存引起的吗?

执行更新后,我该怎么做才能使文档保持一致状态?

任何帮助表示赞赏! 谢谢

可能发生的是刷新尚未到来。 比您能够通过ID进行获取,但该更新尚不可用搜索。 因此,在执行搜索之前强制刷新。 插入许多文档时,这确实会对性能产生影响。 但是对于测试,您应该没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM