我正在使用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运行所有这些步骤时,我没有在更新后立即搜索更新的文档。
这是由某种缓存造成的吗?
在执行更新后,我该怎么做才能获得文档的一致状态?
任何帮助表示赞赏! 感谢
答案 0 :(得分:0)
可能发生的事情是尚未完成更新。您可以通过ID获取,但更新尚不可用于搜索。因此在执行搜索之前强制刷新。插入大量文档时,这确实会对性能产生影响。但是为了测试你应该没事。