solr

编程

Solr是一个Java开发的基于Lucene的 企业级 开源 全文搜索 平台。 它采用的是反向索引,即从关键字到文档的映射过程。 Solr的资源以Document为对象进行存储,每个文档由一系列的 Field 构成,每个Field 表示资源的一个属性。 文档的Field可以被索引, 以提工高性能的搜索效率。 一般情况下文档都包含一个能唯一表示该文档的id字段。

 

Solr是一个Java开发的基于Lucene的 企业级 开源 全文搜索 平台。 它采用的是反向索引,就是从value到key的映射过程,能提高搜索效率

 

全文检索就是把原始文档根据一定的规则拆分成若干个关键词,然后根据关键词创建索引,当查询时先查询索引找到对应的关键词,并根据关键词找到对应的文档,也就是查询结果,最终把查询结果展示给用户的过程

说一下Solr的倒排索引

倒排索引就是从文档内容到文档序号的过程,将文档内容用solr自带分词器进行分词,然后作为索引,用二分法将关键字与排序好的索引进行匹配,进而查找到对应文档

二分法

倒排索引就

为什么要使用Solr

举个例子,当我们访问项目的邮轮旅游模块的航线搜索的时候,我们可以根据我们随意所想的内容输入关键字就可以查询相关的内容。这些随意的数据不可能是根据数据库的字段来查询的。这就需要全文检索工具来实现了

Solr和elasticsearch的区别

共同点:solr和elasticsearch都是基于Lucene实现的!

不同点:

A.solr利用zookeeper进行分布式管理,而elasticsearch自身带有分布式协调管理功能;

B.solr比elasticsearch实现更加全面,solr官方提供的功能更多,而elasticsearch本身更注 重于核心功能,高级功能多由第三方插件提供;

C.solr在传统的搜索应用中表现好于elasticsearch,而elasticsearch在实时搜索应用方面比solr表现好!

D.Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式

 

最后有必要说明一下传统搜索和实时搜索:

传统搜索是从静态数据库中筛选出符合条件的结果,这种结果往往是不可变得、静态的。而实时搜索则是说用户对于搜索的结果是实时变化的。

传统搜索比如电商这种,实时搜索参考谷歌,百度,这种实时搜索。

 

 

 

以上是 solr 的全部内容, 来源链接: utcz.com/z/516164.html

回到顶部