• 全文检索之Solr与Elasticsearch区别


    Elasticsearch

    Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。

    它可以用于全文搜索,结构化搜索以及分析。

    优点

    1. Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
    2. Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
    3. 处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置。
    4. Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
    5. 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。

    Solr

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,

    向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

    优点

    1. Solr有一个更大、更成熟的用户、开发和贡献者社区。
    2. 支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。
    3. Solr比较成熟、稳定。
    4. 不考虑建索引的同时进行搜索,速度更快。

    缺点

    1. 建立索引时,搜索效率下降,实时索引搜索效率不高。

    Elasticsearch与Solr的比较

      1.当单纯的对已有数据进行搜索时,Solr更快。

      2.当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。

      3.随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。

    综上所述,Solr的架构不适合实时搜索的应用。

    Elasticsearch 与 Solr 的比较总结

    • 二者安装都很简单;
    • Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
    • Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
    • Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
    • Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。

    Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

  • 相关阅读:
    多线程中的wait与sleep到底谁释放了锁?
    Java并发编程:volatile关键字解析
    Spring的bean为什么是单例的?
    Java学习之反射
    Http && Https(绕过证书) 请求工具类 (Java)
    Java工具-检验ftp服务器的指定文件是否存在
    文件读取FileUtil工具类 亲测可用
    MyBatis 遇到的报错
    Mac终端 mysql Operation not permitted错误解决方案
    Kubernetes---修改证书可用年限
  • 原文地址:https://www.cnblogs.com/lmqblogs/p/9904216.html
Copyright © 2020-2023  润新知