sphinx使用经验分享

上传人:san****019 文档编号:70896271 上传时间:2019-01-18 格式:PPT 页数:38 大小:1.07MB
返回 下载 相关 举报
sphinx使用经验分享_第1页
第1页 / 共38页
sphinx使用经验分享_第2页
第2页 / 共38页
sphinx使用经验分享_第3页
第3页 / 共38页
sphinx使用经验分享_第4页
第4页 / 共38页
sphinx使用经验分享_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《sphinx使用经验分享》由会员分享,可在线阅读,更多相关《sphinx使用经验分享(38页珍藏版)》请在金锄头文库上搜索。

1、2009-11-06,Sphinx 使用经验分享,研发中心 黄胜,Contents,引言,1,什么是Sphinx,Sphinx 优缺点,4,系统的安装部署,3,5,Sphinx 的配置,6,相关应用,4,2,5,6,引言,1,引言,系统A: 数据量大,内容审核现有搜索建立索引慢;人员流动,现有搜索难于维护;,背景:内容审核搜索的现状,系统B: 前端调用复杂;使用全表扫描,搜索速度慢;对结果的没有排序;难于最快找到最精确的数据,改进要点: 1、高速的索引建立; 2、避免对数据库做like操作,减少压力; 3、对搜索的结果进行权重排序; 4、前端开发调用方便; 5、最好门槛低,易于掌握且后期维护,

2、引言,为什么是Sphinx ?,引言,Contents,什么是Sphinx,2,Hot Tip,什么是全文检索? 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引, 指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统。 一般来说,全文检索需要具备建立索引和提供查询的基本功能,此外现代的全文检索系统还需要具有方便的用户接口、面向WWW的开发接口、二次应用开发接口等等。 功能上,全文检索

3、系统核心具有建立索引、处理查询返回结果集、增加索引、优化索引结构等等功能,外围则由各种不同应用具有的功能组成。 结构上,全文检索系统核心具有索引引擎、查询引擎、文本分析引擎、对外接口等等,加上各种外围应用系统等等共同构成了全文检索系统。,什么是Sphinx,Hot Tip,什么是全文检索?,什么是Sphinx,Hot Tip,什么是Sphinx? (Sphinx = SQL prase index) Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一

4、些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等。同时为MySQL也设计了一个存储引擎插件。,什么是Sphinx,Hot Tip,Sphinx 组件 索引生成器(indexer) 查询数据库,为结果的每行中的指定字段建立索引,并且将每个索引条目绑定到行的主键上。 搜索引擎(searchd) 搜索引擎是名为 searchd 的守护程序。该守护程序将接收搜索词和其他参数,快速遍历一个或多个索引,并返回结果。如果找到匹配,searchd 将返回一个主键数组。对于这些键,应用程序可以针对相关数据库运行查询来查找包含匹配的完整记录。Searchd 默认将在端口 3312 上通过

5、套接字连接与应用程序进行通信。 命令行search实用程序(search) search 实用程序使您可以从命令行构造搜索而无需编写代码。如果 searchd 返回匹配,则 search 将查询数据库并显示匹配集中的行。search 实用程序对于调试 Sphinx 配置和执行临时搜索十分有用。,什么是Sphinx,Sphinx 优缺点,3,Sphinx 优缺点,优点: 高速索引 (10MB/s) 高速搜索 (2-4G的文本量中平均查询速度不到0.1秒) 高可用性 (单CPU上最大可支持100 GB的文本,100万条纪录) 提供良好的相关性排名 支持分布式搜索 提供MySQL内部插件式存储引擎上

6、搜索 支持多字段的检索域 支持断词 支持MySQL(MYISAM和INNODB)和Postgres数据库 支持windows, linux, unix, mac等平台,Sphinx 优缺点,缺点: 必须要有主键 主键必须为整型 不负责数据存储 配置不灵活 (),Diagram,系统的安装部署,4,系统的安装部署,安装步骤: 中文分词工具mmseg 数据库mysql Sphinx插件补丁(SphinxSE) Sphinx中文支持 安装Sphinx 配置,系统的安装部署,安装中文分词工具mmseg : cd /opt/search/src tar xf mmseg-0.7.3.tar.gz cd

7、mmseg-0.7.3 ./configure prefix=/opt/search/app/mmseg make make install make clean,系统的安装部署,安装中文分词工具mmseg :,系统的安装部署,安装MySQL数据库 : cd /opt/search/src tar xf sphinx-0.9.8-rc2.tar.gz tar xf mysql-5.1.29-rc.tar.gz cd sphinx-0.9.8-rc2 patch p1 /sphinx-0.98rc2.zhcn-support.patch #sphinxse插件 patch p1 / fix-cr

8、ash-in-excerpts.patch #sphinx支持中文 cp rf mysqlse /opt/search/src/mysql-5.1.29-rc/storage/sphinx cd /opt/search/src/mysql-5.1.29-rc/ ./configure -prefix=/opt/search/app/mysql -localstatedir=/opt/search/app/mysql/var -without-debug -with-charset=gbk -with-client-ldflags=-all-static -enable-assembler -w

9、ith-extra-charsets=all -enable-thread-safe-client -with-plugins=innobase,partition,sphinx make make install make clean,系统的安装部署,安装MySQL数据库 :,系统的安装部署,安装Sphinx: cd /opt/search/src/sphinx-0.9.8-rc2 ./configure -prefix=/opt/search/app/sphinx -with-mysql=/opt/search/app/mysql/ -with-mysql-includes=/opt/se

10、arch/app/mysql/include/mysql/ -with-mysql-libs=/opt/search/app/mysql/lib/mysql/ -with-mmseg=/opt/search/app/mmseg/ -with-mmseg-includes=/opt/search/app/mmseg/include/mmseg/ -with-mmseg-libs=/opt/search/app/mmseg/lib/ make make install make clean,Sphinx 的配置,5,Sphinx 的配置,Sphinx 的配置 配置文件的内容组成: Source 源

11、名称1 Index 索引名称1 Source 源名称2 Index 索引名称2 Indexer Searchd ,Sphinx 的配置,字典生成 cd /opt/search/src/mmseg-0.7.3/data /opt/search/app/mmseg/bin/mmseg -u unigram.txt cp unigram.txt.uni /opt/search/app/sphinx/uni.lib,Sphinx 的配置,#日记频道 #source部分 source diary type = mysql sql_host = localhost sql_user = search sq

12、l_pass = GZj4yngYWRXZtlUDJFeE sql_db = search sql_sock = /tmp/mysql.sock sql_port = 3306 sql_query_pre = SET NAMES gbk sql_query_pre = SET SESSION query_cache_type=OFF sql_query_range = SELECT MIN(diary_aid), MAX(diary_aid) FROM diary WHERE 1 sql_query = SELECT diary_aid, diary_id, diary_owner, diar

13、y_title, diary_memo FROM diary WHERE diary_aid=$start AND diary_aid$end sql_range_step = 10000 #sql_attr_uint = diary_aid #sql_attr_timestamp = diary_addtime sql_query_info = SELECT * FROM diary WHERE diary_aid=$id ,Sphinx 的配置,#日记频道 #index 部分 index diary source = diary path = /opt/search/app/sphinx/

14、var/data/diary_new/diary_new docinfo = extern mlock = 0 morphology = none min_word_len = 2 charset_type = zh_cn.gbk charset_dictpath = /opt/search/app/sphinx/ min_infix_len = 0 enable_star = 1 html_strip = 0 charset_table = “” ,Sphinx 的配置,#日记频道 #indexer & searchd indexer mem_limit = 512M searchd por

15、t = 3321 log = /opt/search/app/sphinx/var/log/searchd_diary_new.log query_log = /opt/search/app/sphinx/var/log/query_diary_new.log read_timeout = 5 max_children = 30 pid_file = /opt/search/app/sphinx/var/log/searchd_diary_new.pid max_matches = 10000 seamless_rotate = 1 preopen_indexes = 0 unlink_old = 1 ,Sphinx 的配置,Sphinx 主索引+增量索引配置 配置文件的内容组成: Source 源名称1 Source 增量1 : 源名称1 Index 主索引1 Index 增量索引1 : 主索引1 Indexer Searchd ,Sphinx 的配置,Sphinx 主索引+增量索引配置 配置文件的内容组成: Source 源名称1 Source 增量1 : 源名称1 Index 主索引1 Index 增量索引1 : 主索引1 Indexer Searchd ,Sphinx 的配置,Sphinx 主索引+增量索引配置(主索引

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号