博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sphinx教程2__安装、配置和使用
阅读量:2428 次
发布时间:2019-05-10

本文共 2329 字,大约阅读时间需要 7 分钟。

从sphinx网站下载sphinx源码包,我使用的是sphinx2.1.6

一、安装

      步骤如下:

放在任意目录下,解压sphinx源码包:

$ tar xzvf sphinx-2.1.6.tar.gz

       $ cd sphinx

运行configure配置程序:

$ ./configure [options]

参数配置的时候指定,主要如下:

--prefix , 指定sphinx安装到系统的那个位置; 例如 --prefix=/usr/local/sphinx

        --with-mysql, mysql的安装目录,指定如果自动侦查mysql的相关库文件失败后到哪个目录查找 
         --with-pgsql, 同上,只是用于pgsql的。 
       配置示例:./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql

其他配置参数:

   --with-mysql=/usr/local/mysql/

--with-mysql-includes=/usr/local/mysql/include/mysql/

 --with-mysql-libs=/usr/local/mysql/lib/mysql/

         --with-mmseg=/usr/local/mmseg/ 

         --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ 
          --with-mmseg-libs=/usr/local/mmseg/lib/

           编译: 
          $ make
          在这个步骤,可能遇到一个问题,就是报 sphinx undefined reference to 'libiconv' 的错误,解决办法是修改 /src/MakeFile(注意   是src下的Makefile不是csft下的Makefile),编辑LIBS = -lm -lexpat 后面添加-liconv,即将该行该为:
          LIBS = -lm -lexpat -liconv -L/usr/local/lib
          安装
   
          $ make install
          如果编译中没有产生错误,这个步骤应该不会遇到问题。如果完成后未正确安装,就要回去找make过程中遇到的错误了。

  二. 配置和启动sphinx服务

         1、编写配置文件 (安装后在 /usr/local/sphinx/etc/目录下有个sphinx.conf.dist文件,直接把文件名改成shpinx.conf就行了)
           vim /usr/local/sphinx/etc/sphinx.conf
          把其中的数据库信息修改自己mysql服务器信息,同时不要忘了修改相应的表名前缀。

       2、导入测试数据,

进入mysql>  source /usr/local/sphinx/etc/example.sql

3、生成索引文件

 /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all

       索引生成成功的话会在 /usr/local/sphinx/var/data下生成相应的索引文件

4、启动sphinx搜索服务

usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf

默认shpinx会在端口9312、9306两个端口上监听,其中9312端口是走的shpinx协议,走这个端口需要通过api、shpinx自带的search客户端、mysql的shpinxSE引擎来访问,而9306走的是mysql41协议,这个端口可以直接通过mysql客户端连接,然后进行相关的搜索查询

三、搜索查询

1、通过Sphinx自带的search(在bin/目录)就可以在命令行进行搜索: 

cd /usr/local/sphinx
./bin/search -c sphinx.conf test

运行后,系统提示一堆信息:

....
....
words:
1. 'test': 36 documents, 123 hits
这个表示库中有36条记录符合要求,出现test的有123处。

2、通过shpinx api访问

在下载的shpinx源码目录中有个api文件夹,该文件夹下提供了php、java、ruby、python通过api来访问sphinx搜索的例子

php test.php test      就会查出包含test关键字的相关数据

sphinxapi.php

php也有相应的shpinx扩展

3、通过mysql41协议访问

mysql -h127.0.0.1 -P9306

具体的查询方法参考

4、在mysql中通过shpinx引擎访问

mysql shpinx引擎插件的安装参考我的另一篇文章:

sphinx查询语句的写法请研读shpinx官方文档:

现在我的需要被索引的数据如下图(就是shpinx安装后提供的测试数据,索引配置也是shpinx给的默认的---默认的就是针对这个测试数据的)

然后创建shpinx引擎索引表:

CREATE TABLE sph1
(
    id          INTEGER UNSIGNED NOT NULL,
    weight      INTEGER NOT NULL,
    query       VARCHAR(3072) NOT NULL,
    group_id    INTEGER,
    INDEX(query)
) ENGINE=SPHINX CONNECTION="sphinx://127.0.0.1:9312/test1";

你可能感兴趣的文章
超神!GitHub 标星 5.5w,如何用 Python 实现所有算法?
查看>>
扛住100亿次请求——如何做一个“有把握”的春晚红包系统
查看>>
在北京看场雪为什么这么难?
查看>>
新年了,5G手机芯片,到底买谁?
查看>>
疫情之下「在家办公模式」开启,你该选择哪些远程协同工具?
查看>>
如何使用pdpipe与Pandas构建管道?
查看>>
远程办公的33种预测
查看>>
阿里巴巴架构师:十问业务中台和我的答案
查看>>
华为云发布三类六款计算实例 打造更强云端计算能力
查看>>
PHP 语言地位遭受挑战,PHP 程序员路在何方?
查看>>
PostgreSQL好评如潮,它是如何做到的?
查看>>
2017码云群英会,共享开源技术盛宴
查看>>
看完这份参会指南,Get 2017 OSC 年终盛典正确参会姿势!
查看>>
盛食厉兵 中科天玑挖掘大数据价值助力行业数字化转型
查看>>
白鹭引擎正式支持微信小游戏开发
查看>>
2018年,你所不知道的Jira!
查看>>
2017年,阿里巴巴开源的那些事
查看>>
推动边缘计算的七项核心技术
查看>>
边缘计算精华问答 | 边缘计算需要IaaS、PaaS、SaaS等服务能力吗?
查看>>
Spark精华问答 | Spark 会替代Hadoop 吗?
查看>>