sphinx详细安装配置

上传人:第*** 文档编号:32697439 上传时间:2018-02-12 格式:DOCX 页数:10 大小:129.71KB
返回 下载 相关 举报
sphinx详细安装配置_第1页
第1页 / 共10页
sphinx详细安装配置_第2页
第2页 / 共10页
sphinx详细安装配置_第3页
第3页 / 共10页
sphinx详细安装配置_第4页
第4页 / 共10页
sphinx详细安装配置_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《sphinx详细安装配置》由会员分享,可在线阅读,更多相关《sphinx详细安装配置(10页珍藏版)》请在金锄头文库上搜索。

1、Sphinx 详细安装配置项目中需要重新做一个关于商品的全文搜索功能,于是想到了用 Sphinx,因为需要中文分词,所以选择了 Sphinx for chinese,当然你也可以选择 coreseek,建议这两个中选择一个,暂时不要选择原版 Sphinx(对中文的支持不是很好).又因为服务器所用 MySQL 在当时编译时并没有编译 Sphinx 扩展,而重新编译 MySQL并加入 Sphinx 暂时又无法实现(项目用到了多台服务器,在不影响现有业务的 情况下不可能去重新编译 MySQL 的),所以采用的是程序通过 API 来外部调用Sphinx.Sphinx 自带的 API 有 PHP,Pyt

2、hon,Ruby,Java 等众多版本,所以基本也够用了,本人使用的编程语言是 PHP 所以下文的条用示例采用的是 PHP 版的 API. 一.安装及配置 Sphinx 及准备测试数据 1.安装前的准备工作 (1)请确认安装了 MySQL,Gcc 及常用的开发环境包 (2)下载 sphinx-for-chinese-1.10.1 及中文分词词典 xdict_1.1(下面两个方式,选一个即可) 1到 sphinx-for-chinese 官方下载(强烈推荐使用这个)cd /usr/local/src wget -c http:/sphinx-for- wget -c http:/sphinx-f

3、or- 2到本站下载(国外 vps,性能不怎么好,而且速度慢,不推荐,只做备用) cd /usr/local/src wget -c http:/ wget -c http:/ sphinx-for-chinese-1.10.1 cd /usr/local/src tar zxvf sphinx-for-chinese-1.10.1-dev-r2287.tar.gz cd sphinx-for-chinese-1.10.1-dev-r2287 #MySQL 安装在默认位置的使用如下命令 ./configure -prefix=/usr/local/sphinx-for-chinese-1.10

4、.1 -with-mysql如果出现如下图所示错误,表明 MySQL 不是安装在默认位置,请执行下面的命令# 如果 MySQL 不是安装在默认位置(特别是自己编译 MySQL 的,请注意),请指定MySQL 的相关位置,主要是 MySQL 的 include 和 lib 目录 (Sphinx 编译的时候要用到里面的.h 头文件),-with-mysql-includes 及-with-mysql-libs 就是为了指定这两 个位置的./configure -prefix=/usr/local/sphinx-for-chinese-1.10.1 -with-mysql-includes=/usr

5、/local/webserver/mysql/include/mysql -with-mysql-libs=/usr/local/webserver/mysql/lib/mysql 显示如下图所示内容时,表示可以接着执行下面的 make 及 make install 命令make make install #最后执行命令 ls /usr/local/sphinx-for-chinese-1.10.1/如果显示 bin,etc 和 var 三个目录表示安装成功 3.让 Sphinx 支持中文分词 cd /usr/local/src tar zxvf xdict_1.1.tar.gz /usr/l

6、ocal/sphinx-for-chinese-1.10.1/bin/mkdict xdict_1.1.txt xdict_1.1如 果提示 bin/mkdict: error while loading shared libraries: libmysqlclient.so.16 等错误(以下命令中的 libmysqlclient.so.16.0.0 的位置取决于我们 mysql 编译安装的 位置)ln -s /usr/local/webserver/mysql/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so.16

7、再次执行/usr/local/sphinx-for-chinese-1.10.1/bin/mkdict xdict_1.1.txt xdict_1.1 #提示 Chinese dictionary was successfully created!表示中文分词词典生成成功 cp xdict_1.1 /usr/local/sphinx-for-chinese-1.10.1/etc/xdict_1.1 4.配置 Sphinx vi /usr/local/sphinx-for-chinese-1.10.1/etc/sphinx.conf 输入以下内容 # sphinx 基本配置 # 索引源 sour

8、ce goods_src # 数据库类型 type = mysql # MySQL 主机 IP sql_host = localhost # MySQL 用户名 sql_user = sphinxuser # MySQL 密码 sql_pass = sphinxpass # MySQL 数据库 sql_db = sphinx # MySQL 端口(如果防火墙有限制,请开启) sql_port= 3306 # MySQL sock 文件设置(默认为/tmp/mysql.sock,如果不一样,请指定) sql_sock = /tmp/mysql.sock # MySQL 检索编码(数据库非 utf

9、8 的很可能检索不到) sql_query_pre = SET NAMES UTF8 # 获取数据的 SQL 语句 sql_query = SELECT goods_id,goods_id AS goods_id_new,goods_name,goods_color,goods_name AS goods_name_search,goods_color AS goods_color_search From goods_test # 以下是用来过滤或条件查询的属性(以下字段显示在查询结果中,不在下面的字段就是搜索时要搜索的字段,如 SQL 语句中的goods_color_search,goods

10、_name_search) # 无符号整型 #goods_id 为主键,如果加在这里在生成索引的时候会报 attribute goods_id not found,这里用 goods_id_new 来变通 sql_attr_uint = goods_id_new # 字符串类型 sql_attr_string = goods_name sql_attr_string = goods_color # 用于命令界面端(CLI)调用的测试(一般来说不需要) #sql_query_info = SELECT * FROM goods_test Where goods_id = $goods_id; #

11、 索引 index goods # 索引源声明 source = goods_src # 索引文件的存放位置 path = /usr/local/sphinx-for-chinese-1.10.1/var/data/goods # 文件存储模式(默认为 extern) docinfo = extern # 缓存数据内存锁定 mlock = 0 # 马氏形态学(对中文无效) morphology = none # 索引词最小长度 min_word_len = 1 # 数据编码(设置成 utf8 才能索引中文) charset_type = utf-8 # 中文分词词典 chinese_dicti

12、onary = /usr/local/sphinx-for-chinese-1.10.1/etc/xdict_1.1 # 最小索引前缀长度 min_prefix_len = 0 # 最小索引中缀长度 min_infix_len = 1 # 对于非字母型数据的长度切割(for CJK indexing) ngram_len = 1 # 对否对去除用户输入查询内容的 html 标签 html_strip = 0 # 索引器设置 indexer # 内存大小限制 默认是 32M, 最大 2047M, 推荐为 256M 到 1024M 之间 mem_limit = 256M # sphinx 服务进程

13、 search 的相关配置 searchd # 监测端口及形式,一下几种均可,默认为本机 9312 端口 # listen = 127.0.0.1 # listen = 192.168.0.1:9312 # listen = 9312 # listen = /var/run/searchd.sock # search 进程的日志路径 log = /usr/local/sphinx-for-chinese-1.10.1/var/log/searchd.log # 查询日志地址 query_log = /usr/local/sphinx-for-chinese-1.10.1/var/log/que

14、ry.log # 读取超时时间 read_timeout = 5 # 请求超时市时间 client_timeout = 300 # searche 进程的最大运行数 max_children = 30 # 进程 ID 文件 pid_file = /usr/local/sphinx-for-chinese-1.10.1/var/log/searchd.pid # 最大的查询结果返回数 max_matches = 1000 # 是否支持无缝切换(做增量索引时需要) seamless_rotate = 1 # 在启动运行时是否提前加载所有索引文件 preopen_indexes = 0 # 是否释放

15、旧的索引文件 unlink_old = 1 # MVA 跟新池大小(默认为 1M) mva_updates_pool = 1M # 最大允许的网络包大小(默认 8M) max_packet_size = 8M # 每个查询最大允许的过滤器数量(默认 256) max_filters = 256 #每个过滤器最大允许的值的个数(默认 4096) max_filter_values = 4096 # 每个组的最大查询数(默认为 32) max_batch_queries = 32 # Sphinx 配置文件结束中文在 linux 下可能会看到乱码,不用管 5.创建测试数据库并添加测试内容(请先连上自己的 MySQL 数据库),在 MySQL 中执行如下命令 mysql create database sphinx collate utf8_general_ci;mysql grant all privileges on sphinx.* to sphinxuser% identi

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

最新文档


当前位置:首页 > 中学教育 > 职业教育

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