文档首页 > > 移植指南> 移植Sphinx

移植Sphinx

分享
更新时间:2020/06/03 GMT+08:00

介绍

简要介绍

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

语言:C/C++

一句话描述:基于SQL的全文检索引擎

建议的版本

建议使用版本为“sphinx-2.2.11”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

配置编译环境

  1. 安装依赖包。

    yum install gcc-c++

    yum install automake

    yum install imake

    yum install libl2-devel

    yum install libxml2-devel

    yum install expat-devel

  2. 确保环境中运行着MySQL。

获取源码

本文档所测试版本为:Sphinx-2.2.11,可通过“https://releases.ansible.com/ansible/ansible-2.0.0.0.tar.gz”下载。

编译和安装

本文以Sphinx-2.2.11为例,下载Sphinx-2.2.11源码,并编译安装。

wget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz

tar -zxvf sphinx-2.2.11-release.tar.gz

cd sphinx-2.2.11-release

./configure

make -j4

make install

运行和验证

  1. 创建“data”目录。

    mkdir /var/data

  2. 导入Sphinx的测试数据到MySQL中。

    mysql -uroot -p test < /usr/local/etc/example.sql

  3. 备份配置文件。

    cp /usr/local/etc/sphinx.conf.dist /usr/local/etc/sphinx.conf

    修改“sphinx.conf”文件,对应信息修改成如下内容:

    sql_host= localhost   #服务器名
    sql_user= root     #数据库账户名
    sql_pass= Huawei@123     #数据库密码
    sql_db= test    #使用Sphinx库名
    sql_port= 3306  #optional, default is 3306

    注释掉下面内容

    sql_query_pre          = SET NAMES utf8

  4. 创建测试索引文件。

    cd /usr/local/bin

    ./indexer --all

  5. 启动Sphinx搜索服务器。

    ./searchd

  6. 进入Sphinx解压后的文件夹中(假设为“/root/sphinx-2.2.11-release/”),并使用Sphinx安装包自带的API工具测试。

    cd /root/sphinx-2.2.11-release/api

    python test2.py

    回显结果如下:

    n=1, res=this is my <b>text</b> <b>test</b> to be highlighted 
    n=2, res=this is another <b>test</b> <b>text</b> to be highlighted

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问