参考网站
http://www.sphinxsearch.com/wiki/doku.php?id=sphinx_chinese_tutorial
http://ri0day.blogbus.com/logs/41975837.html
==========================================================1 安装
因为我的LAMP环境已经配置好,所以只需要安装sphinx。
sphinx-0.9.8与MySQL5.1.x一起使用会出错,换成低版本的MySQL5.0.x
sudo apt-get install libmysqlclient15-dev
wget http://www.sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz
tar xzvf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --prefix /usr/local/sphinx --with-mysql
make
sudo make install
==========================================================2 测试sphinx自带的demo。
1、导入数据库文件example.sql。
该文件在test数据库新建立一个documents,并插入基本的测试数据。
2、修改sphinx.conf
cd /usr/local/sphinx/etc
cp sphinx.conf.dist sphinx.conf
vim sphinx.conf
主要修改以下几个参数
第一、连接数据库的用户名和密码
sql_user = root
sql_pass = ***** #你自己的密码
第二、索引路径
path = /usr/local/sphinx/var/data/test1
==========================================================3 建立索引
indexer是建立索引的程序,具体参数可以在命令行下查看帮助
root@ubuntu-desktop:/usr/local/sphinx/etc# /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf test1
Sphinx 0.9.8.1-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
indexing index 'test1'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.245 sec, 788.77 bytes/sec, 16.35 docs/sec
==========================================================4 开启查询的守护进程
/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf
E:\web\sphinx>bin\searchd --config sphinx.conf
Sphinx 0.9.8-release (r1371)
Copyright (c) 2001-2008, Andrew Aksyonoff
WARNING: forcing --console mode on Windows
using config file 'sphinx.conf'...
WARNING: index 'test1stemmed': preload: failed to open @CONFDIR@/data/test1stemm
ed.sph: No such file or directory; NOT SERVING
WARNING: index 'dist1': no such local index 'test1stemmed' - SKIPPING LOCAL INDE
X
creating server socket on 0.0.0.0:3312
accepting connections
注意开启3312端口,并修改相应的参数
==========================================================5 查询测试。
查询了两次,分别是ggart和another。结合数据库查看,结果是正确的。
root@ubuntu-desktop:/usr/local/sphinx/bin# /usr/local/sphinx/bin/search -c /usr/local/sphinx/etc/sphinx.conf ggart
Sphinx 0.9.8.1-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
index 'test1': query 'ggart ': returned 0 matches of 0 total in 0.000 sec
words:
1. 'ggart': 0 documents, 0 hits
index 'test1stemmed': search error: failed to open /usr/local/sphinx/var/data/test1stemmed.sph: No such file or directory.
root@ubuntu-desktop:/usr/local/sphinx/bin# /usr/local/sphinx/bin/search -c /usr/local/sphinx/etc/sphinx.conf another
Sphinx 0.9.8.1-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
index 'test1': query 'another ': returned 1 matches of 1 total in 0.000 sec
displaying matches:
1. document=3, weight=2, group_id=2, date_added=Sat Aug 8 23:34:22 2009
id=3
group_id=2
group_id2=7
date_added=2009-08-08 23:34:22
title=another doc
content=this is another group
words:
1. 'another': 1 documents, 2 hits
index 'test1stemmed': search error: failed to open /usr/local/sphinx/var/data/test1stemmed.sph: No such file or directory.
===================================调用Sphinx:未完待续
应用程序如果想调用Sphinx,可以从两个方面:
一是通过Sphinx官方提供的API接口(接口有Python,Java,Php三种版本)
二是通过安装SphinxSE(具体见1.2部分),然后创建一个中介sphinxSE类型的表,再通过执
行特定的SQL语句实现。
------------------通过官方API调用Sphinx(以PHP为例)
在sphinx解压目录有一个API目录,里面有三个PHP文件:test.php,test2.php和
sphinxapi.php。sphinxapi.php是sphinx调用接口封装文件,test.php是一个在命令行下执
行的查询例子文件,test2.php是一个生成摘要的例子文件。
在命令下行运行test.php(Linux上没有API目录,需要从源程序包中复制api目录
至/usr/local/sphinx)
cd /usr/local/sphinx
cp -rf /tmp/sphinx-0.9.8.1/api/ ./
Linux上(php在/usr/local/php目录???????????????????????????????????
,sphinx.conf在/usr/local/sphinx目录):
cd /usr/local/sphinx
/usr/local/php/bin/php api/test.php -i cgfinal CGArt
test2.php是一个摘要生成的例子文件,如果你的本地机器已装好sphinx,php运行环境,你
可以通过浏览器看查看test2.php的运行效果。
-------------------采用SphinxSE方式调用Sphinx
采用sphinxSE必须要求为mySQL安装sphinxSE Engine驱动
进入mysql命令行,运行show engines,看是不是有一个叫sphinx的engine,有的话就表示
sphinxSE(mysql的sphinx引擎)安装正常了
要创建一张sphinx 专用表,你可以这样建
CREATE TABLE `sphinx` (
`id` int(11) NOT NULL,
`weight` int(11) NOT NULL,
`query` varchar(255) NOT NULL,
`CATALOGID` INT NOT NULL,
`EDITUSERID` INT NOT NULL,
`HITS` INT NULL,
`ADDTIME` INT NOT NULL,
KEY `Query` (`Query`)
) ENGINE=SPHINX DEFAULT CHARSET=utf8
CONNECTION='sphinx://localhost:3312/cgfinal';
注:与一般mysql表不同的是ENGINE=SPHINX DEFAULT CHARSET=utf8
CONNECTION='sphinx://localhost:3312/cgfinal';,这里表示这个表采用SPHINXSE引擎,字
符集是utf8,与sphinx的连接串是'sphinx://localhost:3312/cgfinal,cgfinal是索引名称
分享到:
相关推荐
6. **测试搜索**: 使用SQL语句进行全文搜索测试,确保Sphinx和MySQL的集成正常工作。 在压缩包文件中,"附件"可能包含了Sphinx的安装包、配置示例、MySQL的SQL文件以及可能的词典文件。"╕╜╝■"这个文件名看起来...
为了实现这一功能,需要在`sphinx.conf`配置文件中明确指定Sphinx的数据源,包括如何读取MySQL中的数据以及哪些表和字段需要被建立索引。例如,可以通过设置来让Sphinx对`cdb_threads`表的`subject`和`author`字段...
3. **search**:命令行测试工具,用于验证索引和测试搜索功能。 4. **API 库**:提供了多种编程语言的接口,方便开发者将 Sphinx 集成到自己的应用程序中。 Sphinx 的优势在于其强大的索引能力,支持实时增量索引,...
Sphinx支持多种操作系统,包括Windows和CentOS,这表明这篇博客将介绍如何在这些不同的平台上安装和使用Sphinx。"Coreseek"是Sphinx在中国的一个流行分发版,它集成了中文分词器,更适合处理中文数据。 在描述中...
6. **测试和优化**:测试索引的创建和查询性能,根据需求进行调整优化。 在提供的文件中,"实现全文搜索.docx"可能包含了如何使用PHP和Sphinx搭建全文搜索系统的详细步骤,包括配置、代码示例和问题解决策略。而...
**Sphinx 在 WINDOWS 和 LINUX 下的安装入门与测试实例** Sphinx 是一款高效、全文搜索引擎,广泛用于构建网站的...通过 `documents.sql` 文件,我们可以进一步了解如何利用实际数据来测试和优化 Sphinx 的搜索性能。
### Sphinx 安装及使用详解 #### 一、Sphinx简介 Sphinx是一款高性能的全文搜索引擎,主要用于提高大型数据集的搜索效率。它能够独立运行,也可以作为应用程序的一部分嵌入到其他软件中。Sphinx主要适用于对性能...
- 使用` indexer --config sphinx.conf --all --rotate`命令测试索引重建,确保索引更新成功。 - 在PHP中,使用`var_dump()`或`print_r()`函数输出查询结果,以检查返回的数据是否符合预期。 以上是关于在Windows...
1. 安装:正确安装Sphinx和相关依赖,如CoreSeek。 2. 配置:修改`sphinx.conf`,设置数据源、索引、搜索日志等参数,特别是数据库连接信息,以适应你的需求。 3. 创建索引:使用`sphinxbuild`工具或者配置文件中的...
测试和优化 完成上述步骤后,通过PHP发送查询,测试搜索功能是否正常。根据实际需求,可能还需要进行性能优化,如调整索引设置、增加硬件资源等。 总结,Sphinx+CoreSeek的安装配置涉及到多个步骤,包括源码编译...
文件名“PHP+Sphinx+Mysql做搜索引擎_lj详细.doc”和“PHP+MySQL+SPHINX安装配置与测试 - CSDN博客.url”暗示了教程将涵盖这一整合过程。 4. **Sphinx API**:Sphinx不仅支持PHP,还支持Python、Perl和Ruby等其他...
8. **测试**:通过`search`命令进行简单的搜索测试,确保Sphinx已正确安装并运行。 对于开发人员来说,了解如何使用Sphinx API在应用中调用搜索功能也非常重要。例如,你可以使用Python的`SphinxQL`库,或者根据...
7. **测试和优化**: 一旦设置完成,你可以通过PHP页面输入搜索关键词进行测试。根据性能和准确性调整Sphinx配置,如排序方式、同义词处理、停用词列表等。 总结,结合Linux、PHP和Sphinx,你可以构建一个高效、...
通过本文的介绍,我们可以了解到Sphinx是一个非常强大的全文检索工具,它能够极大地提升网站搜索功能的性能和用户体验。结合PHP和MySQL使用,可以构建出高效稳定的站内搜索引擎。对于需要处理大量文本数据的应用场景...
Sphinx提供实时、高效的全文索引和搜索能力,支持多种数据源,如MySQL、PostgreSQL等数据库,以及XMLpipe2这样的自定义数据流。通过使用Sphinx,开发者可以创建高性能的搜索解决方案,提供精确的匹配度和快速的响应...