- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sphinx 在windows 下安装使用
前一阵子尝试使用了一下 Sphinx ,一个能够被各种语言 (PHP/Python/Ruby/etc) 方便调用的全文检索系统。网上的资料大多是在linux 环境下的安装使用,当然,作为生产环境很有必要部署在*nix 环境下,作为学习测试,还是windows 环境比较方便些。
本文旨在提供一种便捷的方式让Sphinx 在windows 下安装配置以支持中文全文检索,配置部分在linux 下通用。
一、关于Sphinx
Sphinx 是一个在GPLv2 下发布的一个全文检索引擎,商业授权(例如 , 嵌入到其他程序中) 需要联系作者( S )以获得商业授权。
一般而言, Sphinx 是一个独立的搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的全文搜索功能。 Sphinx 可以非常容易的与SQL 数据库和脚本语言集成。
当前系统内置MySQL 和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式的 XML 数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型
的DBMS 的原生支持)。
搜索API 支持PHP 、Python 、Perl 、Rudy 和Java ,并且也可以用作 MySQL 存储引擎。搜索API 非常简单,可以在若干个小时之内移植到新的语言上。
Sphinx 特性:
高速的建立索引 ( 在当代 CPU 上,峰值性能可达到 10MB/ 秒 );
高性能的搜索 ( 在 2–4GB 的文本数据上,平均每次检索响应时间小于 0.1 秒 );
可处理海量数据 ( 目前已知可以处理超过 100GB 的文本数据 , 在单一 CPU 的系统上可处理 100M 文档 );
提供了优秀的相关度算法,基于短语相似度和统计(BM25 )的复合Ranking 方法 ;
支持分布式搜索 ;
提供文件的摘录生成 ;
可作为 MySQL 的存储引擎提供搜索服务 ;
支持布尔、短语、词语相似度等多种检索模式 ;
文档支持多个全文检索字段 ( 最大不超过 32 个 );
文档支持多个额外的属性信息 ( 例如:分组信息,时间戳等 );
停止词查询 ;
支持单一字节编码和 UTF-8 编码 ;
原生的 MySQL 支持 ( 同时支持 MyISAM 和 InnoDB);
原生的 PostgreSQL 支持 .
二、 Sphinx 在windows 上的安装
直接在 /downloads.html 找 到最新的 windows 版本,我这里下的是Win32 release binaries with MySQL support ,下载后解压在D:\sphinx 目录下;
在 D:\sphinx\ 下新建一个 data 目录用来存放索引文件, 一个 log 目录方日志文件,复制D:\sphinx\sphinx.conf.in 到D:\sphinx\bin\sphinx.conf (注意修改文件名);
修改D:\sphinx\bin\sphinx.conf ,我这里列出需要修改的几个:
type = mysql # 数据源,我这里是 mysql sql_host = localhost # 数据库服务器sql_user = root # 数据库用户名
sql_pass = # 数据库密码sql_db = test # 数据库sql_port = 3306 # 数据库端口
sql_query_pre = SET NAMES utf8 # 去掉此行前面的注释,如果你的数据库是uft8 编码的
index test1
{
# 放索引的目录
path = D:/sphinx/data/ # 编码
charset_type = utf-8 # 指定 utf-8 的编码表
charset_table = 0..9, A..Z-a..z, _, a..z, U+410..U+42F-U+430..U+44F, U+430..U+44F
# 简单分词,只支持 0 和 1 ,如果要搜索中文,请指定为1 ngram_len = 1
# 需要分词的字符,如果要搜索中文,去掉前面的注释ngram_chars = U+3000..U+2FA1F
}
# 搜索服务需要修改的部分searchd
{
# 日志
log = D:/sphinx/log/searchd.log
# PID file, searchd process ID file name pid_file = D:/sphinx/log/searchd.pid
# windows 下启动 searchd 服务一定要注释掉这个# seamless_rotate = 1
}
导入测试数据
sql 文件在D:/sphinx/examp
原创力文档


文档评论(0)