`
Tzhennan
  • 浏览: 58161 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sphinx安装使用

 
阅读更多

下载地址:

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 安装及使用

    #### 二、Sphinx安装步骤 **1. 下载Sphinx** - 访问官方下载页面:[http://sphinxsearch.com/downloads/release/](http://sphinxsearch.com/downloads/release/),选择适合的版本进行下载。 **2. 解压安装包** -...

    Windows下安装使用Sphinx

    ### Windows 下安装使用 Sphinx #### 一、Sphinx 概述 Sphinx 是一款由俄罗斯开发者 Andrew Aksyonoff 开发的高性能全文搜索软件包,它支持 GPL 和商业许可协议。全文检索是一种信息检索技术,它以文档的全部文本...

    sphinx在linux的安装和使用方法

    ### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...

    sphinx 的安装及使用 windws centos coreseek

    Sphinx支持多种操作系统,包括Windows和CentOS,这表明这篇博客将介绍如何在这些不同的平台上安装和使用Sphinx。"Coreseek"是Sphinx在中国的一个流行分发版,它集成了中文分词器,更适合处理中文数据。 在描述中...

    Sphinx 在 windows 下安装使用.docx

    【Sphinx 在 Windows 下安装使用】的文档主要涵盖了在Windows操作系统上安装和配置Sphinx全文检索引擎的过程。Sphinx是一个高性能、开源的全文搜索引擎,它提供了多种编程语言的API,如PHP、Python、Perl和Ruby,...

    sphinx+mysql 安装手册

    **Sphinx+MySQL安装手册** Sphinx是一款高性能的全文搜索引擎,常用于构建高效的数据检索系统。结合MySQL数据库,可以构建出强大的、适用于千万级数据的全文检索解决方案。本手册将详细讲解如何在生产环境中安装和...

    php7的sphinx扩展,适用linux,mac

    3. 编译并安装扩展:运行`phpize`来配置编译环境,然后执行`./configure --with-sphinx=/path/to/sphinx`,最后使用`make && make install`完成编译和安装。 4. 更新PHP配置:将新安装的Sphinx扩展添加到php.ini文件...

    sphinx+xdict+安装说明.zip

    8. **测试搜索**:编写一个简单的Python脚本或使用Sphinx提供的`search`命令行工具,输入中文查询进行测试,验证安装和配置是否正确。 在实际应用中,你还需要考虑如何优化索引性能,比如调整索引的字段类型、设置...

    Sphinxbase & Pocketsphinx 安裝說明

    ### Sphinxbase与Pocketsphinx安装指南 #### 一、引言 Sphinxbase与Pocketsphinx作为开源语音识别工具包,在语音技术领域有着广泛的应用。本文档将详细介绍这两个工具包的安装过程,帮助读者顺利搭建语音识别环境。...

    语音识别 sphinx4 JAVA 教程

    在Java环境下使用Sphinx-4,首先需要下载并解压Sphinx-4的源代码包,然后通过构建工具如Maven或Gradle进行编译。确保你的开发环境中已安装Java JDK,并配置好环境变量。Sphinx-4的配置文件(通常是config.xml)需要...

    Linux下Mysql5.5的Cmake安装以及sphinx结合

    ### Linux下Mysql5.5的Cmake安装以及sphinx结合 #### 一、Mysql5.5在Linux下的Cmake安装步骤 ##### 1. 用户与权限设置 首先需要为MySQL服务创建一个专用的用户账号,这有助于提高系统的安全性。 ```shell # 创建...

    pocketsphinx、speechrecognition中文语音包.rar

    首先,我们需要安装必要的库,包括pocketsphinx和speechrecognition。然后,通过speechrecognition的`Recognizer`类创建一个识别对象,并设置其使用的识别器为pocketsphinx。接下来,我们可以加载音频文件或实时录音...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1.

    二、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配置...

    window 下sphinx 2.2.11安装 及coreseek3.1 安装包及安装说明 ,简单php调试

    以上是关于在Windows环境下安装Sphinx 2.2.11和CoreSeek 3.1,以及使用PHP进行简单调试的基本流程。整个过程需要对服务器配置、数据库操作和编程有一定了解,希望这个指南能帮助初学者顺利搭建全文索引系统。

    sphinx扩展,适用linux

    通过以上步骤,你应该能成功在 PHP7 中安装并使用 Sphinx 扩展,解决 `libsphinxclient` 报错的问题。Sphinx 提供了丰富的 API 和配置选项,可以帮助你构建出满足业务需求的定制化搜索解决方案。同时,coreseek 对...

    rails3 和 thinking_sphinx安装

    总结一下,Rails3 和 Thinking_Sphinx 的集成涉及安装 Sphinx、配置 Thinking_Sphinx、定义索引、构建索引、启动搜索守护进程以及在应用中使用搜索方法。通过这种方式,你可以为你的 Rails 应用程序引入强大的全文...

Global site tag (gtag.js) - Google Analytics