首页
文章
留言
首页
文章
留言
Sphinx使用总结
2017 年 02 月 05 日
后端
架构
Sphinx
Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx 特别为一些脚本语言设计搜索 API 接口,如Java、PHP、Python、Perl、Ruby 等,同时为 MySQL 也设计了一个存储引擎插件。 Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx 创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。 Sphinx的主要特性包括: > 高速索引(在新款 CPU 上,近10 MB/秒。 > 高速搜索 (2-4G的文本量中平均查询速度不到0.1秒)。 > 高可用性(单 CPU 上最大可支持100 GB的文本,100M文档)。 > 提供良好的相关性排名 支持分布式搜索。 > 提供文档摘要生成。 > 提供从 MySQL 内部的插件式存储引擎上搜索。 > 支持布尔、短语和近义词查询。 > 支持每个文档多个全文检索域(默认最大32个)。 > 支持每个文档多属性。 > 支持断词。 > 支持单字节编码与 UTF-8 编码。 ### 在 MySQL 中安装 Sphinx Sphinx 在 MySQL 上安装有两种方式: #### 第一种: 是采用 API 调用,我们可以使用 PHP、Python、Perl、Ruby 等编程语言的 API 函数进行查询,这种方式不必重新编译 MySQL,模块间改动比较少,相对灵活。下载地址:http://www.sphinxsearch.com/downloads/ #### 第二种: 需要重新编译 MySQL,将 Sphinx 以插件的方式编译到 MySQL 中去,这种方式对程序改动比较少,仅仅需要改动 SQL 语句即可,但前提是你的 MySQL 版本必须在5.1以上。 ##### Sphinx 中文分词插件 Coreseek 安装 注:coreseek的安装教程来自这里,下面是详细过程: ##### 安装升级 autoconf 因为 coreseek 需要 autoconf 2.64以上版本,因此需要升级 autoconf,不然会报错。 ##### 下载 coreseek 新版本的 coreseek 将词典和 sphinx 源程序放在了一个包中,因此只需要下载 coreseek 包就可以了。 ```bash wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz ``` ##### 安装 mmseg(coreseek 所使用的词典) ```bash tar xzvf coreseek-3.2.14.tar.gz cd mmseg-3.2.14 ./bootstrap #输出的 warning 信息可以忽略,如果出现 error 则需要解决 ./configure --prefix=/usr/local/mmseg3 make && make install ``` ##### 安装 coreseek(sphinx) ```bash cd csft-3.2.14 sh buildconf.sh #输出的 warning 信息可以忽略,如果出现 error 则需要解决 ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql make && make install ``` ##### 测试 mmseg 分词和 coreseek 搜索 备注:需要预先设置好字符集为 zh_CN.UTF-8,确保正确显示中文,我的系统字符集为 en_US.UTF-8 也是可以的。 ```bash cd testpack cat var/test/test.xml /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml /usr/local/coreseek/bin/indexer -c etc/csft.conf --all /usr/local/coreseek/bin/search -c etc/csft.conf make && make install ``` 此时正确的应该返回: ```plaintext words: 1. '网络': 1 documents, 1 hits 2. '搜索': 2 documents, 5 hits ``` 生成 mmseg 词库及配置文件。 新版本的已经自动生成。
0
相关文章
Python爬虫之Beautiful Soup的使用
Composer使用总结
Redis、MemCache、MongoDB比较
PHP使用Kafka
Redis基本使用总结
全部分类
前端
后端
运维
架构
算法
数据库
移动应用
桌面应用
程序开发
热门标签
Composer
Redis
Sphinx
Docker
HTML
Lua
Python
Linux
iOS
Elasticsearch
CSS
JavaScript
OpenResty
Kubernetes
多线程
Shell
Git
Supervisor
MySQL
C++
爬虫
macOS
CentOS
PHP
Nginx
Qt
NoSQL
Android
MongoDB
GUI
Objective-C
Kafka
热门文章
Redis、MemCache、MongoDB比较
macOS常用命令
Nginx常用配置说明
OpenResty+Lua+Kafka收集日志
Elasticsearch详解
Supervisor使用总结
Git使用总结
CentOS常用命令总结
Qt实现TCP通讯
HTML5常用特性总结