是否缓存ElasticSearch查询结果

本文关键字:结果 查询 ElasticSearch 缓存 是否 | 更新日期: 2023-09-27 17:51:20

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

我有一个问题,当尝试添加新的值到一个数组。

下面是我正在执行的查询:

步骤1:获取注释

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

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

Step2:更新笔记附件数组

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

Step3: Get note again

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

结果显示注释仍然包含空的Attachments数组

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

这是由某种缓存引起的吗?

我必须做什么才能在执行更新后获得文档的一致状态?

感谢任何帮助!由于

是否缓存ElasticSearch查询结果

可能发生的事情是刷新还没有到来。那么您就可以按id获取,但是更新还不能用于搜索。因此,在执行搜索之前强制刷新。当插入大量文档时,这确实会对性能产生影响。但是对于测试,你应该没问题。