如何搭一个搜索引擎:[2]sphinx篇

上一篇介绍了用xapian搭搜索引擎,这篇介绍使用sphinx来搭中文搜索引擎(实际使用了中文coreseek来搭)。Coreseek 是一个可供企业使用的、基于Sphinx(可独立于Sphinx原始版本运行)的中文全文检索引擎(主要就是加了中文分词功能和支持了python数据源)。
Sphinx 是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎,使用c++语言编写。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx提供了:索引、检索、排序等搜索引擎的主要功能,关键sphinx支持mysql数据源,方便基于LAMP架构的网站创建自己的搜索引擎服务。sphinx功能强大,提供c、php等api接口,从易用性上来说比xapian要有优势。
由于coreseek在sphinx基础上加入了对中文分词的支持,本篇主要介绍使用coreseek来搭建一个中文搜索引擎服务。

操作方法

  • 01

    准备工作: 下载coreseek源码:http://www.coreseek.cn/ ,按照网上的教程编译、安装好。 coreseek中文文档:http://www.coreseek.cn/docs/coreseek_4.1-sphinx_2.0.1-beta.html

  • 02

    修改配置文件: (各配置项详细说明请认真阅读coreseek中文文档) 1)指定数据源: 一般使用mysql数据库作为源 2)配置索引: mlock:为1的情况下使得内存中的索引数据不会被系统换出,某些情况下可以提高性能。 min_prefix_len:前缀索引最小长度,如:等于3的情况下,facebook会生成fac face faceb facebo faceboo facebook六个term对于的索引项。 sphinx支持增量索引,方便新增加的数据快速被检索到,而不用重建整个索引,增量部分可以频繁更新,而不需要重建整个索引。索引的实时增、删、改操作都有相应的解决方案。增:可通过增量索引、或rt索引实现(目前只能使用sphinxQL来更新索引);删:通过设置索引属性标志位的方法来实现;改:通过 UpdateAttributes来更新索引属性。注意:索引字段的更新只能通过重建索引。 3)配置检索服务searchd,几个参数说明: seamless_rotate:支持动态更换索引,即不影响线上检索服务的情况下更换索引,动态换索引的大致原理是采用双buffer机制,用两倍的内存保证在更换索引时又能同时提供服务。

  • 03

    创建索引并启动服务: ./indexer -c etc/test.conf --all --rotate ./searchd -c etc/test.conf 只要设置了seamless_rotate=1,下次可以直接使用./indexer -c etc/test.conf --all --rotate来更换索引而不用重启searchd服务了。

  • 04

    客户端api使用: sphinx提供了sphinxapi.php的api程序,并提供了test.php运行脚本,php程序员修改一下即可方便使用。

  • 05

    总结: sphinx提供了单索引千万级的搜索引擎解决方案,提供了丰富实用的索引、检索、排序、过滤等功能,100w级数据,索引文本大小不到1个G,检索响应时间在10ms以内。对于千万级以下规模、日搜索量在100w以内的强烈推荐使用,避免重复造车轮,吃力不讨好。即使将来数据量、检索量、功能需求进一步增长,也可以很方便地通过sphinx提供的引擎来作扩展。

(0)

相关推荐

  • 如何购买及使用你的第一个kindle(购买篇)

    Kindle是亚马逊推出的一款墨水屏电子书,以其优良的性能,丰富的资源,获得了许多热爱读书又怕伤眼的同学的厚爱.此文以本人新购进的paperwhite第二代为主人公,讲述本人购机及使用的心得体会. 对 ...

  • 电脑无故重新启动的一个解决办法(硬件篇)

    夏天到了,一些电脑无故重新启动,或者是死机,程序无响应等。查病毒查不到,系统重装N次也不行,有的朋友还为此大老远把电脑抱到电脑城去处理,结果也未必尽如人意。下面河南人就把自己成功的经验(已成功,稳定运 ...

  • 用自己电脑搭一个服务器 花生壳内网穿透做法详解

    大家都知道IPv4时代公网IP资源紧张,大部分宽带用户都只能使用内网IP,导致功能受限.而花生壳端口映射支持NAT穿透,这样内网用户也能像公网用户一样可以自己搭建服务器发布网站.实现远程桌面连接.搭建 ...

  • 知道么?Windows 7里藏着一个XP!

    还记得在Windows7发布前夕,曾经有朋友特别激动地问,“听说Windows7里面藏了一个XP?”藏……相信这个家伙年轻的时候一定很喜欢躲猫猫的游戏;还有一个朋友也问过我,“是 ...

  • 搜索引擎原理(五)

    操作方法 01 的形式就是q 在其中直接出现.不过后面我们会看到,如果一个搜索引擎就是以 百分之百满足这种简单的包含关系为目标,即使实现了也并不就达到了最好的效 果. "列表",这 ...

  • 360极速浏览器怎么添加搜索引擎

    360极速浏览器怎么添加搜索引擎

  • ie浏览器怎么修改默认搜索引擎为百度

    ie浏览器怎么修改默认搜索引擎为百度

  • 什么搜索引擎可以用图搜索

    通常情况下,在举办大型活动的时候,媒体以及观众都会发很多活动图片,不论是通过媒体自己的平台还是社交平台,图片更新速度非常快,尤其是在我们的Instagram以及Pinterest风靡起来以后,你想要的 ...

  • 利用excel vba编程在窗体上画一个六边形

    利用excel vba编程在窗体上画一个六边形.这篇教程是向朋友们分享利用excel vba编程在窗体上画一个六边形方法,教程很不错,适合新手来学习,推荐大家来看看吧. 步骤1 打开excel表格,进 ...