下面将从这几个方面写写我对solr这个分布式搜索引擎的认识。
1.what is solr 2.solr的反向排序法 3.solr的优点 4.solr与elastic search的比较
一.What
Solr是基于lucene、java开发的企业级开源全文搜索平台。它采用的是反向索引,即从文档关键字到文档本身的过程。它存储的资源是以document为对象的,每个document带有一系列field。这些field可以被索引,所以从性能角度上说,可以提高搜索效率。而且每个document都有一个id field可唯一标识该document
二.solr 的反向排序法
反向排序法即倒排索引,从文档内容到文档序号的过程。
先用自带分词器对文档内容分词,形成索引。再用二分法将关键字与排序号的索引匹配,最后找到文档
三.solr的优点
如果我们在搜索框中随心所欲地输入关键字去查找相关内容,这些随意查找到的内容仅依靠传统的数据库字段查询是不可实现的,需要靠Lucene这种全文检索工具。全文因为Lucene有切分词与词元匹配功能,如日本、澳门,Lucene可切分出这些组合:日门、本澳等,这些是可通过solr找到的。另外,一种叫IKanalyzer分词器,可与solr配置,有细粒度切分与智能切分,即智能算法。这些体现出solr最大的好处:检索功能的实现
四.与Elastic search的比较
都基于lucene开发
1.solr靠zookeeper实现分布式协调管理,而elastic search可自身进行分布式协调
2.solr的功能比较全面,官方提供的功能更多;而elastic search更为专注自身核心功能,一些高级功能靠第三方插件
3.solr在传统搜索,像电商这种业务场景,从静态数据库中筛选符合条件的结果,这种结果是静态、没有实时变化的。
elastic search用在实时搜索,如百度谷歌这种搜索引擎,搜索结果是实时变化的业务场景