当前位置: 首页 >生活知识 > 内容

如何构建搜索引擎[2]sphinx

生活知识
导读 相信目前很多小伙伴对于如何搭一个搜索引擎[2]sphinx篇都比较感兴趣,那么小搜今天在网上也是收集了一些与如何搭一个搜索引擎[2]sphinx篇相...
2022-06-09 21:23:49

相信目前很多小伙伴对于如何搭一个搜索引擎[2]sphinx篇都比较感兴趣,那么小搜今天在网上也是收集了一些与如何搭一个搜索引擎[2]sphinx篇相关的信息来分享给大家,希望能够帮助到大家哦。

1、修改配置文件: (各配置项详细说明请认真阅读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机制,用两倍的内存保证在更换索引时又能同时提供服务。

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

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

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

理解搜索引擎的基本原理有助于理解sphinx各个参数的意义

认真阅读coreseek提供的中文手册

7、

本文到此结束,希望对大家有所帮助。

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。