基于Sphinx构建准实时更新的分布式通用搜索引擎平台.docVIP

基于Sphinx构建准实时更新的分布式通用搜索引擎平台.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Sphinx构建准实时更新的分布式通用搜索引擎平台 标签:搜索引擎、分布式、Sphinx、MySQL、并发 前言:   2008年7月,我写过一篇文章《基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计》。有不少网友希望阅读全文,我将该文档整理了一下,分享出来。文档解压后大小为7.33M,共19页。   本站下载地址:?/book/sphinx/sphinx_mysql.zip   新浪下载分流:?/f/6728201.html   上述文档架构存在的局限,我在2008年12月的文章《亿级数据的高并发通用搜索引擎架构设计》中已经指出:一是MySQL本身的并发能力有限,在200~300个并发连接下,查询和更新就比较慢了;二是由于MySQL表的主键与Sphinx索引的ID一一对应,从而无法跨多表建立整站查询,而且新增加类别还得修改配置文件,比较麻烦;三是因为和MySQL集成,无法发挥出Sphinx的优势。虽然如此,但对于一些写入量不大的搜索应用,已经足够了,或许对很多人会有帮助。 正文:   在这之后,本人基于《亿级数据的高并发通用搜索引擎架构设计》开发的Sphinx分布式通用站内搜索引擎平台,已经在生产环境运行9个月以上,经过运营中的不断完善与改进,目前已形成了一套可扩展的分布式通用站内搜索引擎框架。CMS、视频、论坛等产品发生的增、删、改操作,文本内容实时写入自行开发的?HTTPSQS?高性能简单消息队列服务,通过队列控制器更新索引和存储。提供支持XML、JSON的API查询接口,支持亿级数据的索引、分布式、中文分词、高亮显示、自动摘要、准实时(1分钟内)增量索引更新。   下面是Sphinx新的搜索架构中技术关键点实现方式的一些介绍,与大家分享、交流一下:   1、一元分词和中文分词的结合:   ①、一元分词位于索引更新模块。Sphinx索引引擎对于CJK(中日韩)语言(必须是UTF-8编码)支持一元切分,假设【反恐行动是国产主视角射击网络游戏】这段文字,Sphinx会将其切成【反 恐 行 动 是 国 产 主 视 角 射 击 网 络 游 戏】,然后对每个字建立反向索引。如果用这句话中包含的字组成一个不存在的词语,例如【恐动】,也会被搜索到,所以搜索时,需要加引号,例如搜索【反恐行动】,就能完全匹配连在一起的四个字,不连续的【恐动】就不会被搜索到。但是,这样还有一个问题,搜索【反恐行动游戏】或【国产网络游戏】就会搜索不到。对于这个问题,采用位于搜索查询模块的中文分词来处理。   sphinx.conf配置文件中关于UTF-8中文一元分词的配置如下: ...省略... index t_source_main{ ????????source??????????????????= t_source_main ????????path????????????????????= /data0/search/sphinx/data/t_source_main ????????docinfo???????????????? = extern ????????mlock?????????????????? = 0 ????????morphology??????????????= none ????????min_word_len????????????= 1 ????????charset_type????????????= utf-8 ????????min_prefix_len??????????= 0 ????????html_strip??????????????= 1 ????????charset_table?????????? = 0..9, A..Z-a..z, _, a..z, U+410..U+42F-U+430..U+44F, U+430..U+44F ????????ngram_len?????????????? = 1 ????????ngram_chars???????????? = U+3000..U+2FA1F } ...省略...   ②、中文分词位于搜索查询模块。搜索“反恐行动游戏”、“国产网络游戏”,先调用独立的中文分词系统,分别切分为“反恐行动 游戏”、“国产 网络游戏”,这时候,再给以空格分隔的词语加上引号,去Sphinx搜索【反恐行动 游戏】或【国产 网络游戏】,就能搜索到这条记录了。中文分词词库发生增、删、改,无需重建整个Sphinx搜索索引。   2、使用自行开发的HTTPSQS(/p/httpsqs)开源简单队列服务程序,来缓冲高并发数据写入   新闻、论坛帖子、客服公告、SNS社区等发生的增、删、改操作,文本内容通过更新接口实时写入HTTPSQS队列,再通过队列控制器

文档评论(0)

yyh892289 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档