• sphinx安装


    首先在你的linux上先下载一个coreseek的一个linux的安装包
     
    由于官网的下载地址已经不存在所以这里我已经以其他渠道下载完成
     
    打开linux首先安装如下依赖包;(如果有的话只需要更新)
      在cd /usr目录下
    1、yum -y install m4 autoconf automake libtool
     
    2yum -y install gcc gcc-c++ wget
     
    3yum -y install mysql-devel
     
    ##mmseg3是一个中文分词插件
     
    如果没有下载的话可以将根本文档带的安装包上传到linux
     
    如果安装包已经放好
     
    执行如下命令:
    或把安装包用fz传到usr目录下
    tar zxvf 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                      编译 &&  编译安装
     
    echo $? 输出0代表没错
    cd../csft3.2.14/                      进入配置目录
     
    shbuildconf.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                       
                                          检测配置
    cd /usr/local  看有没有mmseg3
    cd ../
    cd coreseek-3.2.14/
    cd csft-3.2.14/
    安装过程需要修改一个配置文件
    win安装包找到改好后替换掉linux 内的此文件
    vi src/sphinxexpr.cpp
     
    然后将所有的T val = ExprEval ( this->m_pArg, tMatch ).....修改为
     
        T val = this->ExprEval ( this->m_pArg, tMatch )
    (建议大家将此文件拿到本地进行修改)
    替换后执行[root@localhost csft-3.2.14]# make
    make install
     
    cd /usr/local/coreseek/etc                        
     进入coreseek安装完成的路径
     
    输入ls会看到3个文件
    example.sql  sphinx.conf.dist  sphinx-min.conf.dist
    现在已经基本安装完成
     
    其中example.sql是示例sql脚本我们将其导入到数据库中的test数据库中作为测试数据(会创建两张表 documentstags)
    mysql -u root -p
    show databases;
    use test;
    创建表
    source /usr/local/coreseek/etc/example.sql
    exit;
    创建vi sphinx.conf
    输入以下内容:
    source src1
    {
    type = mysql
    sql_host = 192.168.214.128
    sql_user = root
    sql_pass = root
    sql_db = test
    sql_port = 3306 # optional, default is 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
    sql_attr_uint = group_id
    sql_attr_timestamp = date_added
    sql_query_info = SELECT * FROM documents WHERE id=$id
    }
    source src2 : src1
    {
    sql_query = SELECT `id`, 2 AS table_id, `username`, `password`, `email`, `salt`, `from` FROM table_2
    }
    index test1
    {
    source = src1
    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
    }
    index test2 : test1
    {
    source = src2
    path = E:/SQL_DATA/coreseek/var/data/table_2
    }
     
    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
    }
     
     
    进入 cd /etc/
    打开 vim ld.so.conf
    添加:/usr/local/mysql/lib
    刷新 ldconfig
     
    说明:
    代码段source src1{***} 代表数据源里面主要包含了数据库的配置信息,src1表示数据源名字,可以随便写。
    代码段index test1{***} 代表为哪个数据源创建索引,source *** 是成对出现的,其中的source参数的值必须是某一个数据源的名字。
    其他参数可以查看手册,这里不再赘述。
     
     
    生成索引:
     
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all
    其中参数--all表示生成所有索引
    当然也可以是索引的名字例如:
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf test1
     
     
    执行后可以在/usr/local/coreseek/var/data目录中看到多出一些文件,是以索引名为文件名的不同的扩展名的文件
    在不启动sphinx的情况下即可测试命令:
     
    (这是开启sphinx的命令行搜索就是说 number是你要查询的数据名称)
     /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf
    (searchd是开启sphinx的搜索服务功能)
    Php操作linux上的sphinx
    在站点域名目录下创建一个文件列如test.php
    在test.php文件中写入如下内容;
    (注意与test同级需要将本身的sphinxapi类加载进来)
    <?php
    header("content-type:text/html;charset=utf8");
    include'./sphinxapi.php';
    $sphinx= new SphinxClient();
    $sphinx->SetServer('你linux上的ip地址',9312);
    $res=$sphinx->Query("搜索字段","*");  //这里的*代表匹配所有定义好的规则
    print_r($res);
    ?>
     
    vim /etc/rc.local 自启动文件夹
  • 相关阅读:
    最近公共祖先LCA Tarjan 离线算法
    HDU 2586 How far away? LCA 转化成RMQ
    最近公共祖先 Least Common Ancestors(LCA)算法 --- 与RMQ问题的转换
    RMQ ---- ST(Sparse Table)算法
    二维计算几何系列(一) -------- 数据结构
    Goalng基础语法-输入和输出
    Golang基础语法-运算符
    Golang基础语法-数据类型
    Golang基础语法-常量
    Golang基本语法-变量
  • 原文地址:https://www.cnblogs.com/fwqblogs/p/6596150.html
Copyright © 2020-2023  润新知