Solr入门

【Solr是什么】

  • 开源搜索平台,用于构建搜索应用程序
  • 企业级的,快速的和高度可扩展的
  • Solr构建的应用程序非常复杂,可提供高性能
  • 一种非关系数据存储和处理技术
  • Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据
  •  它建立在Lucene(全文搜索引擎)之上

【特点】

  • Restful APIs − 要与Solr通信,并非一定需要有Java编程技能
  • 全文搜索
  • 企业准备
  • 灵活和可扩展
  • NoSQL数据库
  • 管理界面 - Solr提供了一个易于使用,用户友好,功能强大的用户界面
  • 高度可扩展,在使用Solr与Hadoop时,我们可以通过添加副本来扩展其容量
  • 以文本为中心并按相关性排序

【Solr架构】

Solr入门_第1张图片

  • 请求处理程序 - 发送到Apache Solr的请求由这些请求处理程序处理。
  • 搜索组件 - 搜索组件是Apache Solr中提供的搜索类型(功能)。
  • 查询解析器 − Apache Solr查询解析器解析传递给Solr的查询,并验证查询的语法是否有错误。解析查询后,将它们转换为Lucene理解的格式。
  • 响应写入器 - Apache Solr中的响应写入器是为用户查询生成格式化输出的组件。 Solr支持XML,JSON,CSV等响应格式。对每种类型的响应都有不同的响应写入。
  • 分析器/分词器 - Lucene以令牌的形式识别数据。 
  • 更新请求处理器 - 每当向Apache Solr发送更新请求时,请求都通过一组称为更新请求处理器的插件(签名,日志记录,索引)运行。这个处理器负责修改,例如删除字段,添加字段等。

【sorl与Elasticsearch的比较】

1、sorl
    优点:

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

    缺点

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

2、ElasticSearch
    优点

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

    缺点

  •         1、还不够自动,不适合当前新的Index Warmup API

3、总结

  •     1、当单纯的对已有数据进行搜索时,Solr更快。
  •     2、当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。
  •     3、随着数据量的增加,Solr的搜索效率会变得更低,而Elasticsearch却没有明显的变化。
  •     4、Solr的架构不适合实时搜索的应用。
  •     5、Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式
  •     6、Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch
  •     7、Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用

【搜索引擎基础】

1、搜索引擎组件

Web爬虫 - Web爬虫也称为蜘蛛或机器人。 它是一个收集网络信息的软件组件。
数据库 - Web上的所有信息都存储在数据库中。它们包含大量的Web资源。
搜索接口 - 此组件是用户和数据库之间的接口。它帮助用户搜索数据库。

2、如何工作的

  • 1    获取原始内容    任何搜索应用程序的第一步是收集要进行搜索的目标内容。
  • 2    构建文档    从原始内容构建文档,让搜索应用程序可以很容易地理解和解释。
  • 3    分析文档    在索引开始之前,将对文档进行分析。
  • 4    索引文档    当文档被构建和分析后,下一步是对它们建立索引,以便可以基于特定键而不是文档的全部内容来检索该文档。索引类似于在书开始页或末尾处的目录索引,其中常见单词以其页码显示,使得这些单词可以快速跟踪,而不是搜索整本书。
  • 5    用于搜索的用户接口    当索引数据库就绪,应用程序可以执行搜索操作。 为了帮助用户进行搜索,应用必须提供用户接口,用户可以在其中输入文本并启动搜索过程
  • 6    构建查询    当用户做出搜索文本的请求,应用程序应该使用该文本来准备查询对象,然后可以使用该查询对象来查询索引数据库以获得相关的细节。
  • 7    搜索查询    使用查询对象,检查索引数据库以获取相关详细信息和内容文档。
  • 8    渲染结果    当收到所需的结果,应用程序应决定如何使用其用户界面向用户显示结果。

3、总体视图

Solr入门_第2张图片

你可能感兴趣的:(-----solr)