Solr 原理篇

  • Solr和ElasticSearch一样,都是基于Lucene的搜索服务器。
  • Solr 在传统的搜索应用中表现好于ES(搜索数据是现成的,不需要热更新),但在处理实时搜索应用时效率明显低于 Elasticsearch
  • Solr更成熟稳定,支持多种格式的返回,而ES只支持json
  • Lucene 是一个 JAVA 搜索类库,它本身并不是一个完整的解决方案,需要额外的开发工作

Solr特点

  • 先进的全文搜索功能(不同于数据库的like查询,会根据分词结果的匹配程度按照评分规则顺序展示)(支持引入特定的分词器)
  • 多语言(中文分词:Ansj分词插件、IK等)
  • 高性能搜索服务器:多主多从,主服务器异常时自动切换,读取的时候有负载均衡策略,Slave可以响应读请求,但是所有的写请求要转发给Leader
  • 很强的容错性:Leader挂了,Slave可以顶上。全部挂了,还有持久化的日志,可以恢复数据。
  • API支持关键词高亮、颜色显示等渲染形式
  • XML,JSON和HTTP等结果返回形式
  • 支持url命令、java API、管理界面等多种形式操作搜索服务器
  • 集群环境支持配置路由规则, IBM!***,这样所有IBM!开头的数据源都会分配到一个Shard上

搜索原理

  • 结合zk等注册中心,解耦和高扩展性
  • 支持在solr配置好规则和数据源,从数据库导入数据,创建索引规则
  • 根据分词器的分词规则,根据不同Master上的汇总,根据得分排序
  • 可以根据配置,做一些高亮显示等等美化

你可能感兴趣的:(Solr 原理篇)