SOLR Streaming VS搜索

时间:2016-12-08 14:59:49

标签: solr lucene

在内部实施方面,流式搜索和普通搜索之间的主要区别是什么?普通搜索也可以以分布式方式工作,对吗?流媒体如何提高性能?文档没有帮助。

1 个答案:

答案 0 :(得分:1)

分布式搜索发出请求,计算结果,提供结果并处理合并。在继续下一步之前,将完全处理每个步骤。当数据量很小时,这很有效。对于较大的请求,例如提供数百万个文档,这需要大量的内存缓冲区。这也意味着调用者必须等到最后一步(将结果传递给调用者)才能处理结果。

通过流式传输,所有这一切都在持续:计算,交付和合并同时发生,具有固定的高端内存开销。您可以要求10K结果,或者您可以要求100亿,唯一的区别是需要多长时间。由于进程的每个部分同时处于活动状态,包括传递给调用者,这也意味着第一个结果数据将很快传递给调用者。

在内部,流媒体基本上是通过搜索结果进行分页。每个页面(10K文档,如果我没记错的话)在计算完成后立即传递给流。忽略优化,可以通过深度分页和自定义合并从外部模拟相同的行为。