- 性能对比
集群空闲时的搜索速度
集群空闲的含义:整个集群已经构建好所有的索引数据,只进行搜索,不再同步写入任何索引数据。
可以看到,在这种条件下,ES进行一次搜索需要大约50ms的时间,但是Solr一次搜索只需要不到20ms的时间。
Solr的搜索速度在静态搜索的前提下具有明显的优势。
写入索引时的搜索速度
测试条件:每3秒写入一个doc索引
在写入索引的同时,进行搜索,ES进行一次搜索需要的时间没有明显变化,但是Solr的搜索速度下降了一个量级(20ms ---- 200ms ---- 2200ms)。
随着数据量的增加,ES的搜索效率没有明显变化,但是Solr得搜索效率却急剧下降。
原因&&结论
当实时建立索引时, Solr会产生io阻塞,查询性能较差。
Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。
Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。