在我的论文中,我目前正在研究Elasticsearch和MongoDB的速度(下至毫秒)。
我注意到,与MongoDB相比,在返回数据的速度和找到的总项方面,弹性搜索是非常一致的。如果发现的结果越多,其他MongoDB返回数据的时间就越长,那么无论发送的请求总数如何,弹性搜索的响应时间几乎总是相同的。
我的假设是,在Elasticsearch中,当使用size运算符时,在完成索引中的搜索之后,实际查找和检索的文档数量正好是size运算符中设置的数量。在MongoDB中不是这样,在MongoDB中,检索索引中匹配的所有文档,并且只有顶部X值最终根据游标的batch_size和设置的最大值返回给客户端。
我没有办法,除了花几个小时查看源代码,找出这个假设是否正确,或者我肯定错过了其他事情。
感谢您抽出时间阅读这篇文章,任何回复都将不胜感激,并将帮助我进一步研究。
发布于 2017-05-06 09:23:16
为了更清楚地了解Elasticsearch实际上是如何检索结果的:它使用查询,然后取。
因此,如果您搜索N个结果,第一个阶段将查询所涉及的所有碎片,并返回包含分数和ID的N个结果的列表,而不是其他信息。在第二个阶段中,您可以通过获取,它是最高的N个全局结果,因此您将检索比所需的分数和ID更多的分数和ID,但是您只会获取实际的结果。
https://stackoverflow.com/questions/43784815
复制相似问题