sphinx全文检索功能 | windows下测试 (一)

时间:2021-02-12 15:55:50

前一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/Ruby/etc)方便调用的全文检索系统。网上的资料大多是在linux环境下的安装使用,当然,作为生产环境很有必要部署在*nix环境下,作为学习测试,还是windows环境比较方便些。本文旨在提供一种便捷的方式让Sphinx在windows下安装配置以支持中文全文检索,配置部分在linux下通用。一、关于SphinxSphinx 是一个在GPLv2 下发布的一个全文检索引擎,商业授权(例如, 嵌入到其他程序中)需要联系作者(Sphinxsearch.com)以获得商业授权。一般而言,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上的安装

1.直接在http://www.sphinxsearch.com/downloads.html找到最新的windows版本,我这里下的是Win32 release binaries with MySQL support,下载后解压在D:\sphinx-2.2.6目录下;(我下载的在我附件)

2.在sphinx-2.2.6下面新建文件夹命名 data和log

3.将 sphinx-min.conf.in文件复制到 sphinx-2.2.6/bin下面(这里建议使用min版。测试)

4.进入dos,切换到sphinx-2.6.6/bin下面:

D:\sphinx-2.2.6\bin>indexer.exe --config "d:/sphinx-2.2.6/bin/sphinx.conf" --all

Sphinx 2.2.6-id64-release (r4843)Copyright (c) 2001-2014, Andrew AksyonoffCopyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file 'd:/sphinx-2.2.6/bin/sphinx.conf'...

indexing index 'test1'...collected 4 docs, 0.0 MBsorted 0.0 Mhits, 100.0% donetotal 4 docs, 193 bytestotal 0.045 sec, 4210 bytes/sec, 87.25 docs/sec

skipping non-plain index 'testrt'...total 3 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avgtotal 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg

D:\sphinx-2.2.6\bin>searchd.exe --config "d:/sphinx-2.2.6/bin/sphinx.conf"

Sphinx 2.2.6-id64-release (r4843)Copyright (c) 2001-2014, Andrew AksyonoffCopyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file 'd:/sphinx-2.2.6/bin/sphinx.conf'...

listening on all interfaces, port=9312listening on all interfaces, port=9306

precaching index 'test1'precaching index 'testrt'precached 2 indexes in 0.007 sec

这个时候安装正确并且运行了,不要关闭,这时任务管理器出现了searchd.exe服务此时可以运行api下面的test02使用了测试了。剩下的就很简单了。