我正在实施一个软件,其中数据被发送到某个Web服务器,存储在Elasticsearch中,然后立即查询。我知道Elasticsearch是遵循BASE(基本可用,软状态,最终一致性)原则的NoSQL,这意味着无法保证您的数据何时可用于搜索。
这就是为什么当我查询刚刚添加到Elasticsearch的数据时,我必须等待一段时间才能找到它。现在我所能做的就是实现轮询机制来检测数据何时被完全应用。值得一提的是,如果我使用_id
来检索文档,则会立即找到它。但是,如果我使用某种类型的Elasticsearch查询(例如term
或query_string
)搜索它,则需要一段时间才能找到该文档。
所以我的问题是:有没有更便宜的方法来检测数据在Elasticsearch中完全索引的时间?
答案 0 :(得分:1)
此部分由Refresh API完成,此API不提供了解索引数据何时可用的方法。但是有弹性的人正在努力让请求等待刷新。
如果你看一下,我认为应该会更好:https://www.elastic.co/blog/refreshing_news
这篇文章很好地概述了他们正在努力改进的问题和内容。
希望有所帮助:D