Elasticsearch显示错误的查询数据。 我以不同的方式进行相同的查询,第一个是
**GET salesindex/salesmarket/368**
,结果显示我更新的正确数据 " DeletedID":2,
但是
POST salesindex/salesmarket/_search
{ "query":{"bool": {"must": [{"term": {"salesId": 368}}]}}}
我得到了相同数据的错误结果 " DeletedID":1,
然后我清除缓存并尝试,它显示相同的结果但是在2-3分钟后它显示正确的结果。 salesId是我的文档ID 我无法理解弹性搜索的这种行为。
答案 0 :(得分:0)
在情况一中,您可以通过文档的ID执行GET,即可获得即时访问权限。但是,当您执行查询时,如情况2,您必须等待刷新发生。如果没有刷新,则新的或更新的文档尚未添加到Lucene缓存中。您也可以使用显式刷新尝试相同的方法。请注意,除非更新量不高,否则通常情况下这不是您想要的生产。
简而言之: 通过id获取:实时 搜索:近实时
希望有所帮助