Solr入门和实践以及我对Solr的8点理解

论坛 期权论坛     
选择匿名的用户   2021-6-2 15:47   171   0
<div class="blogpost-body" id="cnblogs_post_body">
<p><strong>友情提示</strong><br>Solr的内容还是比较多的,一篇文章只能讲解一部分。<br>全面介绍,没兴趣,没时间,也没能力,回报还不大。<br>本文只写点我认为比较重要的知识点,独特的个人想法。<br>仅供参考哦,更多细节需要自己去琢磨。<br><br><br><strong>概述</strong><br>Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,<br>同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。<br><br><br><strong>工作方式</strong><br>文档通过Http利用XML 加到一个搜索集合中。<br>查询该集合也是通过http收到一个XML/JSON响应来实现。<br>它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,<br>提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。<br><br><br><strong>需求场景</strong><br>查询和搜索,我们直接查询<a class="keylink" href="http://www.2cto.com/database/">数据库</a>MySQL。查询数据库主要有一些局限性:<br>比如多表查询效率低,大文本字段不好建立索引和搜索,复杂的条件查询和搜索功能不够强大,或者说不够简单。<br>使用Solr的话,就很简单地解决了以上问题。<br><br>以上需求,或者说关系型数据库mysql的问题,只是目前的一点理解。<br>虽说能够使用MySQL和Sorl解决实际中的问题,但毕竟都是中低难度的问题(自认为如此哦)。<br>非要说深入理解,剖析Solr的好处,MySQL是否“干的过”Solr,真心不懂。<br>单独搞MySQL,够你研究5年以上,DBA毕竟是个传说。<br>Solr,想搞懂,也得好多年。<br><br>个人同时学习<a class="keylink" href="http://www.2cto.com/kf/ware/Java/">Java</a>服务端、<a class="keylink" href="http://www.2cto.com/kf/yidong/Android/">Android</a>、iOS、Web前端,目标是能够解决工作中最常见的问题,并不想要<br>深入学习有限的几种技术,比如MySQL,达到那种“再难的问题,也可以搞定”的程度。<br><br><br><strong>我对Solr的8点理解<br>1.定义数据源接口,获得数据。</strong><br>比如定义MySQL查询语句,把一个表或多个表的数据,导入到Solr中。<br>这个地方我觉得特别“不公平”,数据都是从别的地方搞过来的。外界的数据如果会变化,意味着,必须处理“数据同步”。<br>实时性要求不高的情况下,可以每天“全量更新”。要求高的情况下,单条数据的变化,需要“实时更新-单条”。<br>因此,Solr和Mysql并不是“直接竞争”关系,而是“互补”的关系。<br><strong>2.把Mysql等数据源的数据,导入到Solr中去。</strong><br>Solr定义数据,可以理解成一张很大的表,包含了很多字段,比如可以包含mysql中3个表的所有字段。<br>这样,查询就不存在“多表”的问题。<br>既然是一张表,建立索引,查询就很快了。<br><strong>3.自带缓存功能。</strong><br>Mysql,Solr,Redis等数据源或者有能力获得数据和管理数据的<a class="keylink" href="http://www.2cto.com/kf/all/zujian/">组件</a>,只要需要,就可以提供“缓存”功能。<br>Solr简化了查询,缓存就更容易了。<br><strong>4.索引和全文搜索。</strong><br>Solr底层采用Lucene建立索引,全文索引,这样可以实现更多的“搜索功能”,可以说增强了Mysql的查询。<br><strong>5.站内搜索的另外一种形式。</strong><br>百度等搜索引擎,可以为网站提供“站内搜索”功能,他们爬去数据可以是公开的URL的形式。<br>如果需要和百度等合作,可以申请使用百度的搜索API,将站内数据,更友好,更快速地告诉百度。<br>而Solr和百度提供的搜索相关接口就基本一样,只不过是处在我们的管理之下。<br><strong>6.简洁使用的管理界面。</strong><br>后台有Web界面,导入数据,更新,可以通过可视化的操作来管理,比较方便。<br><strong>7.功能服务化。</strong><br>Solr提供的查询等功能,有Java等多种语言的实现。<br>建立数据结构,导入数据,维护缓存和实时性,最重要的就是“查询”和“搜索”了。<br><strong>8.最大的“隐患”。</strong><br>只用Mysql管理数据和查询的时候,我们必须并且只需要保障<a class="keylink" href="http://www.2cto.com/database/MySQL/">mysql</a>的“高可用性”。<br>不能出任何问题,如果只
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP