搜索功能解决方案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

搜索功能系统设计方案V1.01WEB站点搜索功能系统设计方案版本作者日期审核v1.02010/12/16草稿搜索功能系统设计方案V1.02目录1基本Sphinx的全文搜索引擎......................................................................................................31.1:什么是全文检索................................................................................................................31.2:Sphinx介绍........................................................................................................................31.3:Sphinx的特性......................................................................................................................31.4:Sphinx中文分词..................................................................................................................41.5功能总结...............................................................................................................................52基本数据库引擎的搜索优化.........................................................................................................52.1:总体设计思想....................................................................................................................52.2:系统设计方案及基本流程...............................................................................................62.3:系统结构............................................................................................................................62.4:功能总结............................................................................................................................73基于前两种方案的优化方案.........................................................................................................83.1方案思路...............................................................................................................................83.2实施方案...............................................................................................................................83.3系统结构构想图...................................................................................................................8搜索功能系统设计方案V1.031基本Sphinx的全文搜索引擎1.1:什么是全文检索全文检索是指以文档的全部文本信息作为检索对象的一种信息检索技术。检索的对象有可能是文章的标题,也有可能是文章的作者,也有可能是文章摘要或内容。1.2:Sphinx介绍Sphinx是由俄罗斯人AndrewAksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL数据库数据源的支持,也支持从标准输入读取特定格式的XML数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS的原生支持)。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。1.3:Sphinx的特性1.高速的建立索引(在当代CPU上,峰值性能可达到10MB/秒)2.高性能的搜索(在2–4GB的文本数据上,平均每次检索响应时间小于0.1秒)3.可处理海量数据(目前已知可以处理超过100GB的文本数据,在单一CPU的系统上可处理100M文档)4.提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法5.支持分布式搜索6.支持短语搜索7.提供文档摘要生成8.可作为MySQL的存储引擎提供搜索服务9.支持布尔、短语、词语相似度等多种检索模式搜索功能系统设计方案V1.0410.文档支持多个全文检索字段(最大不超过32个)11.文档支持多个额外的属性信息(例如:分组信息,时间戳等)12.支持断词1.4:Sphinx中文分词中文的全文检索和英文等latin系列不一样,后者是根据空格等特殊字符来断词,而中文是根据语义来分词。目前大多数数据库尚未支持中文全文检索,如Mysql。故,国内出现了一些Mysql的中文全文检索的插件,做的比较好的有hightman的中文分词。Sphinx如果需要对中文进行全文检索,也得需要一些插件来补充。如coreseek和sfc。Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg。并提供了多个系统的二进制发行版,其中有rpm,deb及windows下的二进制包。另外,coreseek也为sphinx贡献了以下事项:1.GBK编码的数据源支持2.采用Chih-HaoTsaiMMSEG算法的中文分词器sfc(sphinx-for-chinese)是由网友happy兄提供的另外一个中文分词插件。其中文词典采用的是xdict。目前版本在索引速度上(Linux测试平台)基本上能够达到索引UTF-8英文的一半,即官方宣称速度的一半。(时间主要是消耗在分词上)。安装和配置都非常方便。happy兄在分词方面还有另外一个贡献——php-mmseg,这是php对中文分词的一个扩展库。系统结构图(图片来源于网络)搜索功能系统设计方案V1.051.5功能总结个人总结的优点:1.功能强大,安装方便2.开源免费,便于维护与实施3.搜索性能高,服务稳定个人总结的缺点:1.无法统计用户搜索关键词密度,不便于系统主动搜索并缓存2.所有搜索的数据没有中间进行动态缓存,导致每次的查询都需要进行读表操作2基本数据库引擎的搜索优化2.1:总体设计思想基于查询时的特点,进行数据库结构优化,建立数据库字段的全文搜索索引等,对用户搜索功能系统设计方案V1.06搜索关键词分析,并统计,系统主动缓存搜索频率高的关键词。优化查询语句,进行数据库读写分离,变更数据库文件系统等方式提高mysql数据库的影响速度,读写分离可以避免因为更新操作导致的锁表操作。2.2:系统设计方案及基本流程该方案需要我们首先对数据库进行结构优化,包括建立索引,修改MYSQL存储引擎,数据库读写分离,其次需要建立搜索关键词库,并进行关键词累计,统计每个关键词被搜索的概率,建立系统定时任务,主动完成对搜索频率高的关键词的主动搜索并缓存。具体分为如下几步:1.优化Mysql,进行数据库读写分离,优化文件系统,使用xfs文件系统代替ex3文件系统2.优化数据库结构,拆分数据表,建立索引,使用FULLTEXT全文索引,加速查找3.建立关键词表,记录关键词的搜索次数,将常用的关键词的搜索结果进行缓存操作4.编写高性能Sql语句,减少慢查询,优化Mysql缓存机制5.优化服务器架构2.3:系统结构程序优化架构图:搜索功能系统设计方案V1.07系统结构优化图:WEB服务器不直接连接数据库,而是通过中间缓存服务器,只有缓存数据不存在时,才进行数据库查找。2.4:功能总结优点:1.可以统计用户搜索关键词,分析用户行为,可以获知用户最想获取的数据是什么2.增加了动态缓存机制,一次查询数据库,即可加入缓存,搜索相同的关键词,不用实时查找数据库3.对关键词进行分析,做系统定时任务,主动搜索关键词查询频率高的关键词,系统定时更新并优化缺点:1.系统实施需要专业的技术人员方能实现2.需要良的程序设计习惯及代码编写规范3.需要对Mysql数据库的结构特点了解,需要懂得一定的服务器架构技术搜索功能系统设计方案V1.083基于前两种方案的优化方案3.1方案思路之由于前两种方式我个人认为都有一些优势与不足,如果将两种方案都加以取其优点,避其缺点,即可以实现相对完美的解决方案。3.2实施方案结合两种方案的优缺点,我们使用第一种方式的快速,稳定,索引添加方便,开源免费,安装方便等优点,布署相应的服务,从第二种方案中加入搜索关键词优化,统计,数据动态缓存技术等来弥补第一种方案的缺点。3.3系统结构构想图

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功