下载地址:
http://sphinxsearch.com/downloads/archive/
解压收编译配置
$ ./configure --prefix=/usr/local/sphinx --with-mysql
$ make
$ make install
$ cd /usr/local/sphinx/etc/
$ cp sphinx.conf.dist sphinx.conf
######################################################################
使用sphinx自带的例子
导入测试数据
$ mysql-u root -p < /usr/local/sphinx/etc/example.sql
设置数据库信息
$ vim sphinx.conf
##### 索引源 ###########
source src1
{
type = mysql #####数据源类型
sql_host = localhost ######mysql主机
sql_user = root ########mysql用户名
sql_pass = pwd ############mysql密码
sql_db = test #########mysql数据库名
sql_port= 3306 ###########mysql端口
sql_query_pre = SET NAMES UTF8 ###mysql检索编码
####设置数据源
sql_query = sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
}
设置索引
index test1
{
source = src1 ####声明索引源
path = /usr/local/sphinx/var/data/test1 #######索引文件存放路径及索引的文件名
docinfo = extern ##### 文档信息存储方式
}
生成索引
$ bin/indexer -c etc/sphinx.conf test1
php下调用shpinx进行搜索(这是源码api中php cli模式的用例,还有其它语言调用的相关用例)
$ cd /usr/local/software/sphinx-2.2.11-release
$ php test.php test
######################################################################
PHP调用demo
##### 索引源 ###########
source src1
{
type = mysql #####数据源类型
sql_host = 192.168.1.10 ######mysql主机
sql_user = root ########mysql用户名
sql_pass = pwd ############mysql密码
sql_db = test #########mysql数据库名
sql_port= 3306 ###########mysql端口
sql_query_pre = SET NAMES UTF8 ###mysql检索编码
sql_query = SELECT * FROM task ####### 获取数据的sql
#####以下是用来过滤或条件查询的属性############
####自定义返回的字段
sql_field_string = id
sql_field_string = name
}
### 索引 ###
index test1
{
source = article_src ####声明索引源
path = /usr/local/sphinx/var/data/article #######索引文件存放路径及索引的文件名
docinfo = extern ##### 文档信息存储方式
mlock = 0 ###缓存数据内存锁定
morphology = none
min_word_len = 1 #### 索引的词最小长度
charset_type = utf-8 #####数据编码
##### 字符表,注意:如使用这种方式,则sphinx会对中文进行单字切分,
##### 即进行字索引,若要使用中文分词,必须使用其他分词插件如 coreseek,sfc
}
######### 索引器配置 #####
indexer
{
mem_limit = 256M ####### 内存限制
}
############ sphinx 服务进程 ########
searchd
{
listen = 9312 ### 监听端口
log = /usr/local/sphinx/var/log/searchd.log #### 服务进程日志 ,一旦sphinx出现异常,基本上可以从这里查询有效信息,轮换(rotate)出的问题一般可在此寻到答案
query_log = /usr/local/sphinx/var/log/query.log ### 客户端查询日志,笔者注:若欲对一些关键词进行统计,可以分析此日志文件
read_timeout = 5 ## 请求超时
max_children = 30 ### 同时可执行的最大searchd 进程数
pid_file = /usr/local/sphinx/var/log/searchd.pid #######进程ID文件
max_matches = 1000 ### 查询结果的最大返回数
seamless_rotate = 1 ### 是否支持无缝切换,做增量索引时通常需要
}
生成索引(只生成test1索引文件)
$ bin/indexer -c etc/sphinx.conf test1
如果重建索引时守护进程正在运行,会报错,需要运行下面的指令,会重建索引并且重开守护进程
$ /usr/local/sphinx/bin/indexer -c /usr/local/sphinx/etc/test.conf --all --rotate
--all 参数表示将生成所有索引文件
searchd作为sphinx在服务器的守护进程
$ /usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/sphinx.conf
停止
$ /usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/sphinx.conf --stop
PHP端
<?php
require "sphinxapi.php"; //sphinx的api目录(如:/usr/local/software/sphinx-2.2.11-release/api/)
$cl = new SphinxClient();
$cl->setServer("localhost", 9312);
#$cl->setMatchMode(SPH_MATCH_EXTENDED); //使用多字段模式
$res = $cl->query($keyword, "test1");
//$err = $cl->getLastError();
$res = !empty($res['matches']) ? $res['matches'] : "";
print_r($res);
结果:
Array
(
[1] => Array
(
[weight] => 1557
[attrs] => Array
(
[name] => zhengzhou
)
)
[3] => Array
(
[weight] => 1557
[attrs] => Array
(
[name] => kaifeng-zhengzhou
)
)
)
相关推荐
#### 二、Sphinx安装步骤 **1. 下载Sphinx** - 访问官方下载页面:[http://sphinxsearch.com/downloads/release/](http://sphinxsearch.com/downloads/release/),选择适合的版本进行下载。 **2. 解压安装包** -...
### Windows 下安装使用 Sphinx #### 一、Sphinx 概述 Sphinx 是一款由俄罗斯开发者 Andrew Aksyonoff 开发的高性能全文搜索软件包,它支持 GPL 和商业许可协议。全文检索是一种信息检索技术,它以文档的全部文本...
### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...
Sphinx支持多种操作系统,包括Windows和CentOS,这表明这篇博客将介绍如何在这些不同的平台上安装和使用Sphinx。"Coreseek"是Sphinx在中国的一个流行分发版,它集成了中文分词器,更适合处理中文数据。 在描述中...
【Sphinx 在 Windows 下安装使用】的文档主要涵盖了在Windows操作系统上安装和配置Sphinx全文检索引擎的过程。Sphinx是一个高性能、开源的全文搜索引擎,它提供了多种编程语言的API,如PHP、Python、Perl和Ruby,...
**Sphinx+MySQL安装手册** Sphinx是一款高性能的全文搜索引擎,常用于构建高效的数据检索系统。结合MySQL数据库,可以构建出强大的、适用于千万级数据的全文检索解决方案。本手册将详细讲解如何在生产环境中安装和...
3. 编译并安装扩展:运行`phpize`来配置编译环境,然后执行`./configure --with-sphinx=/path/to/sphinx`,最后使用`make && make install`完成编译和安装。 4. 更新PHP配置:将新安装的Sphinx扩展添加到php.ini文件...
8. **测试搜索**:编写一个简单的Python脚本或使用Sphinx提供的`search`命令行工具,输入中文查询进行测试,验证安装和配置是否正确。 在实际应用中,你还需要考虑如何优化索引性能,比如调整索引的字段类型、设置...
### Sphinxbase与Pocketsphinx安装指南 #### 一、引言 Sphinxbase与Pocketsphinx作为开源语音识别工具包,在语音技术领域有着广泛的应用。本文档将详细介绍这两个工具包的安装过程,帮助读者顺利搭建语音识别环境。...
在Java环境下使用Sphinx-4,首先需要下载并解压Sphinx-4的源代码包,然后通过构建工具如Maven或Gradle进行编译。确保你的开发环境中已安装Java JDK,并配置好环境变量。Sphinx-4的配置文件(通常是config.xml)需要...
### Linux下Mysql5.5的Cmake安装以及sphinx结合 #### 一、Mysql5.5在Linux下的Cmake安装步骤 ##### 1. 用户与权限设置 首先需要为MySQL服务创建一个专用的用户账号,这有助于提高系统的安全性。 ```shell # 创建...
首先,我们需要安装必要的库,包括pocketsphinx和speechrecognition。然后,通过speechrecognition的`Recognizer`类创建一个识别对象,并设置其使用的识别器为pocketsphinx。接下来,我们可以加载音频文件或实时录音...
二、MYSQL+SPHINX+SPHINXSE安装步骤: 5 1、安装python支持 5 2、编译安装LibMMSeg 5 3、编译安装MySQL 5.1.26-rc、Sphinx、SphinxSE存储引擎 5 4、创建Sphinx索引文件和MySQL数据文件存放目录 6 5、创建MySQL配置...
以上是关于在Windows环境下安装Sphinx 2.2.11和CoreSeek 3.1,以及使用PHP进行简单调试的基本流程。整个过程需要对服务器配置、数据库操作和编程有一定了解,希望这个指南能帮助初学者顺利搭建全文索引系统。
通过以上步骤,你应该能成功在 PHP7 中安装并使用 Sphinx 扩展,解决 `libsphinxclient` 报错的问题。Sphinx 提供了丰富的 API 和配置选项,可以帮助你构建出满足业务需求的定制化搜索解决方案。同时,coreseek 对...
总结一下,Rails3 和 Thinking_Sphinx 的集成涉及安装 Sphinx、配置 Thinking_Sphinx、定义索引、构建索引、启动搜索守护进程以及在应用中使用搜索方法。通过这种方式,你可以为你的 Rails 应用程序引入强大的全文...