徐员外#《Solr实战》100本技术书之9

技术更新的速度快到令人发指,前一年apache下的solr还是4.7版本的,现在已经有7.4的版本了,这也从侧面反映了此项技术在各大公司的应用情况。

在互联网时代,获取信息,分析信息,推荐信息已经变得越来越快捷和准确,在这背后有大数据的蓬勃发展,更有搜索技术的一份功劳。搜索技术如何在项目中有效落地,是每个研发团队都需要考虑的事情,但是技术的更新速度如此之快,让很多跟不上技术发展的企业和项目吃尽苦头,力不从心。互联网行业基本上都是赢家通吃,吃得头寸的往往是掌握核心技术,紧跟时代,不断学习的团队,在技术驱动商业变革面前,其他一切都是虚的,作为技术人员也不要羡慕那些虚头巴脑的东西,将技术死磕到底才是王道。

Apache开源了lucene和solr,让我们能够窥见搜索技术之原理,快速的加以借鉴和应用,这本书有六百多页16章,从数量上看,是一部巨作。从书的序的介绍看来,作者也将此书归纳为【初始、核心、进阶】3部分来介绍,试图引导读者理解其内容。但从我阅读的体会来看,读这本书首先要有搜索引擎技术研发的知识储备,否则真的不知道作者在讲什么。其次,这是一本把概念讲复杂了的书,你要想从这一摊乱麻中找到知识的主线是一件很困难的事,这也怪不得作者,因为这本书本身就是由一帮人拼凑翻译过来的,加上翻译理解上的问题,读起来味同嚼蜡也在情理之中。

这本书我不想一章一章的细讲,我只想说有价值的部分在第七章,也就是配置不同类型的搜索域【field】,根据相关规则,最后得到不同的搜索结果。如果大家的英文比较好,建议大家看solr官网的“apache solr reference guide”,一千多页,收获绝对比这本书大。

这本书讲了solr当中很多生僻冷门的函数、技术等等,对于有搜索技术基础或专门搞搜索研发的朋友有一定的启发和知识拓展作用。但是对于广大的搜索门外汉或刚接触搜索技术的朋友怎么办?我的建议是先要理解solr的几大核心概念和处理流程,这样才能已最快的速度掌握这门技术,按照我的理解,整理成以下四点。

1、搜索的内容从何而来?

内容可以分为结构化的数据和非结构化的数据,例如放在数据库中经过整理后的结构化数据,放在各个电脑磁盘中的各种不同类型文件和内容的非结构化的数据。

像“百度”它为什么能找到那么多东西,因为它使用了“爬虫”的技术将互联网上很多机器中的文件、网页和内容作了标记和路径的映射,将标记后的数据存在自己的索引库中。

2、为什么通过搜索可以找得到?

核心概念是“索引”,要能快速找到就要像查字典或图书馆查一本书一样,先要有目录。创建目录的过程就是“索引”,在solr搜索的技术中,第一步就是要为你所要搜索的内容创建“索引”,创建索引的过程就是将文档或内容做好不同的标识【也就是分词】,分配在不同的域“filed”,最后写在索引库中,索引库并不是一个数据库,大家可以把它看成一个磁盘空间。

3、精确度如何匹配,速度如何保证?

将查询的内容通过搜索引擎的分词技术,在索引库中查找分词后的关键字,通过相关过滤规则后,匹配到相应的搜索结果。所以这部分的重点是,分词器的准确性,过滤规则的设置,中文语义分析比较好的是IK分词器。

Solr的内部使用了缓存的技术,所以搜索技术对内存的要求相对较高,这里引申出来搜索规则、权重和缓存的设置和应用等技术。

4、如何保证高可用?

高可用的前提是系统“不死”,其次是稳定运行,最后才是高性能。所以涉及到不死必须要进行solr服务器的主从配置,心跳机制检测。稳定和高性能要通过Zk分布式注册中心统一调度,监控和调优等技术来解决,像类似的技术只要掌握大的思路和解决问题的框架,技术的经验和详细细节都是在工作中积累的。

如果将这本书中的精华内容梳理出来,重新组织写成200来页,无疑是一本好书,所以今后选书也是一门技巧。把厚的书读薄,把某个技术点或知识点增厚,这就是知识积累的过程。

最后奉上我录的一个简短视频,让大家通盘了解solr技术,开展相关技术的学习和应用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180721G12ISC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券