ElasticSearch查询结果是否已缓存?

时间:2016-06-27 19:37:50

标签: c# asp.net-mvc elasticsearch

我正在使用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 }
  }
}

结果显示注释仍包含空的附件数组

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

这是由某种缓存造成的吗?

在执行更新后,我该怎么做才能获得文档的一致状态?

任何帮助表示赞赏! 感谢

1 个答案:

答案 0 :(得分:0)

可能发生的事情是尚未完成更新。您可以通过ID获取,但更新尚不可用于搜索。因此在执行搜索之前强制刷新。插入大量文档时,这确实会对性能产生影响。但是为了测试你应该没事。