Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用 程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL 也设计了一个存储引擎插件。

我要使用Sphinx需要做以下几件事:

1)、首先得有数据

2)、建立Sphinx配置文件

3)、生成索引

4)、启动Sphinx

5)、php操作使用之(调用api或search.exe程序进行查询)

具体搭建步骤:

先下载好sphinx的压缩包。

1、更新依赖包以及安装编译环境
   mount /dev/cdrom /media/cdrom  #先挂载

  yum -y install m4 autoconf automake libtool

  yum -y install gcc gcc-c++ wget

  yum -y install mysql-devel

(以上是需要的编译环境,如果有就不用重新安了,建议重新安,否则不知道那些已经安装)

2、下载coreseek -3.2.14.tar.gz(这是一个中文分词插件压缩包)

  tar xzvf coreseek-3.2.14.tar.gz
  cd coreseek-3.2.14
  cd mmseg-3.2.14/
  ./bootstrap
  ./configure --prefix=/usr/local/mmseg3
  make
  make install

3、安装csft-3.2.14

  cd ../csft-3.2.14/
  sh buildconf.sh
  ./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --host=arm

  vi src/sphinxexpr.cpp
直接修改文件的1746, 1777和1823行,然后将所有的T val = ExprEval ( this->m_pArg, tMatch ).....修改为T val = this->ExprEval ( this->m_pArg, tMatch )

  make
  make install

进入配置目录通过命令ls可以看到3个文件
example.sql  sphinx.conf.dist  sphinx-min.conf.dist
其中example.sql是示例sql脚本我们将其导入到数据库中的test数据库中作为测试数据(会创建两张表 documents和tags)

---------------

4、配置文件更改:

vi /usr/local/coreseek/etc/sphinx.conf
输入以下内容
source main_src
{
    type                    = mysql
    sql_host                = 192.168.1.70     #查询的服务器ip地址
    sql_user                = root                   #用户名
    sql_pass                =root                   # 密码
    sql_db                    =test       #使用的数据库
    sql_port                = 3306          # 数据库端口3306
    sql_sock                                = /tmp/mysql.sock
    sql_query_pre                 = SET NAMES utf8      #定义查询时的编码
    sql_query                = \
        SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
        FROM documents                                      #数据源配置核心语句,sphinx使用此语句从数据库中拉取数据
    sql_attr_uint            = group_id
    sql_attr_timestamp        = date_added
    sql_query_info            = SELECT * FROM documents WHERE id=$id       #设置命令行下返回的信息。
}
index main    #索引名称
{
    source                    = main_src      #数据源名称
    path                    = /usr/local/coreseek/var/data/test1     
    docinfo                    = extern
    charset_type            = zh_cn.utf-8
    mlock            = 0
    morphology        = none
    min_word_len        = 1
    html_strip        = 0
    charset_dictpath        = /usr/local/mmseg3/etc/     #中文分词检索路径
    ngram_len                    = 0
}
indexer
{
    mem_limit                = 32M
}
searchd
{
    port                    = 9312
    log                        = /usr/local/coreseek/var/log/searchd.log
    query_log                = /usr/local/coreseek/var/log/query.log
    read_timeout            = 5
    max_children            = 30
    pid_file                = /usr/local/coreseek/var/log/searchd.pid
    max_matches                = 1000
    seamless_rotate            = 1
    preopen_indexes            = 0
    unlink_old                = 1
}


说明:

代码段source main_src{***} 代表数据源里面主要包含了数据库的配置信息,main_src表示数据源名字,可以随便写。

代码段index main{***} 代表为哪个数据源创建索引,与source *** 是成对出现的,其中的source参数的值必须是某一个数据源的名字。
其他参数可以查看手册,这里不再赘述。
生成索引

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all     #--all表示生成所有主、增索引,也可写单独的索引名称
启动命令
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf

执行后可以在/usr/local/coreseek/var/data目录中看到多出一些文件,是以索引名为文件名的不同的扩展名的文件
在不启动sphinx的情况下即可测试命令:
  /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/sphinx.conf 中国

以上就算sphinx搭建完成了,一般会配置增量索引,与主索引搭配。

centos7下搭建sphinx全文检索引擎的更多相关文章

  1. 在Centos7下搭建Socks5代理服务器

    在Centos7下搭建Socks5代理服务器 http://blog.51cto.com/quliren/2052776   采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器 ...

  2. 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,

    第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...

  3. Hyperledger超级账本在Centos7下搭建运行环境

    超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO).埃森哲(Accenture)等十几个不同利益体 ...

  4. Sphinx全文检索引擎测试

    数据表 1.documents CREATE TABLE `documents` ( `id` int(13) NOT NULL auto_increment, `group_id` int(11) ...

  5. centos7下搭建ceph luminous(12.2.1)--无网或网络较差

    本博客的主要内容是在centos7下搭建luminous,配置dashboard,搭建客户端使用rbd,源码安装ceph,最后给出一些较为常用的命令.本博客针对初次接触ceph的人群. 搭建环境: 主 ...

  6. CentOS7下搭建zabbix监控(四)——Zabbix报警设置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...

  7. CentOS7下搭建zabbix监控(三)——Zabbix监控服务配置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 (1).配置Zabbix监控Apache服务 主机名:yo ...

  8. CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置

    Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...

  9. Linux系统:Centos7下搭建PostgreSQL关系型数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...

随机推荐

  1. jquery metadata 详解

    1.0的版本是这样的$.meta 2.0的版本是这样的$.metadata 很多插件的编写都用到了这个插件,个人感觉这个东西应该是jquery官方的.推荐使用2.0的版本, 因为现在官方上就是2.0的 ...

  2. clearfix的用法

    如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有 clear,导致不能被撑开.看下面的例子:Div布局如下:Css代码如下:.out{border:1 ...

  3. C 标准库 - string.h之strcpy使用

    strcpy Copies the C string pointed by source into the array pointed by destination, including the te ...

  4. [PY3]——heap模块 和 堆排序

    heapify( ) heapify()函数用于将一个序列转化为初始化堆 nums=[16,7,3,20,17,8,-1] print('nums:',nums) show_tree(nums) nu ...

  5. bzoj 3874: [Ahoi2014&Jsoi2014]宅男计划

    Description 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的. 比如JYY如果今天点了一份保质期为1天的 ...

  6. 架构实战项目心得(九):后台服务工具ldap:统一用户中心ldap工具使用以及安装

    一.安装OpenLDAP 1.安装 yum -y install openldapopenldap-servers openldap-clients openldap-devel compat-ope ...

  7. javascript typeof 和 instanceof 的区别和联系

      这篇文章是我看完<JavaScript高级程序设计(第2版)>书籍的随笔文章,目的只有一个,以备自己和网友们方便参考和记忆! typeof是什么?       typeof 是一个操作 ...

  8. SQL Server修改表结构,不允许保存更改。

    当修改表结构时,sql server会弹出对话框,显示以下内容: 不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项. ...

  9. tomcat绑定域名绑定端口及更换ROOT目录

    一.更换ROOT目录 tomcat默认网站目录为 webapps/ROOT ,那么我们如何改为自己的网站目录呢? 1.打开并编辑tomcat目录下的 conf/server.xml 大约在148行的位 ...

  10. golang学习之生成代码文档

    go doc 工具会从 Go 程序和包文件中提取顶级声明的首行注释以及每个对象的相关注释,并生成相关文档. 一般用法: go doc package 获取包的文档注释,例如:go doc fmt 会显 ...