1. 程式人生 > >centos7安裝配置coreseek(sphinx)

centos7安裝配置coreseek(sphinx)

centos7安裝配置coreseek(

  • 安裝依賴:
    yum  -y  install  make  gcc  gcc-c++  libtool  autoconf  automake  imake  mariadb  mariadb-server  mariadb-devel libxml2-devel expat-devel
  • 下載軟件包:
    a. 克隆:
    git  clone  https://github.com/dollarphper/soft.git

    b. 進入目錄:

    cd  soft
  • 解壓縮:
    tar  -xzf  coreseek-4.1-beta.tar.gz
  • 安裝mmseg:
    a. 進入目錄:
    cd  coreseek-4.1-beta/mmseg-3.2.14/

    b. 安裝:

    ./bootstrap
    ./configure --prefix=/usr/local/mmseg3
    make && make install
  • 安裝coreseek:
    a. 進入目錄:
    cd  ../csft-4.1

    b. 修改配置文件:
    vim configure.ac

    將
    AM_INIT_AUTOMAKE([-Wall -Werror foreign])
    修改為
    AM_INIT_AUTOMAKE([-Wall foreign])

    c. 下載軟件:

    yum  -y  install  patch

    d. 打補丁:

    patch  -p1  <  /home/lee/sphinx/sphinxexpr.cpp-csft-4.1-beta.patch
    輸入:
    /home/lee/sphinx/coreseek-4.1-beta/csft-4.1/src/sphinxexpr.cpp

    技術分享圖片
    e. 安裝:

    sh  buildconf.sh
    ./configure  --prefix=/usr/local/coreseek  --without-unixodbc  --with-mmseg  --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/  --with-mmseg-libs=/usr/local/mmseg3/lib/  --with-mysql
    make  &&  make install
  • 測試:
    a. 進入測試目錄:
    cd  ../testpack/

    b. 查看測試文件:

    cat  var/test/test.xml

    技術分享圖片
    c. 測試中文分詞:

    /usr/local/mmseg3/bin/mmseg  -d  /usr/local/mmseg3/etc var/test/test.xml

    技術分享圖片
    d. 創建索引:

    /usr/local/coreseek/bin/indexer  -c  etc/csft.conf  --all

    技術分享圖片
    e. 搜索測試:

    /usr/local/coreseek/bin/search  -c  etc/csft.conf  李彥宏

    技術分享圖片

  • php連接sphinx:
    a. 安裝擴展:
    a-1. 進入目錄:
    cd  ../csft-4.1/api/libsphinxclient/

    a-2. 編譯:

    aclocal
    libtoolize --force
    automake --add-missing
    autoconf
    autoheader
    make clean
    ./configure  --prefix=/usr/local/sphinxclient
    make  &&  make install

    a-3. 回到軟件包目錄:

    cd  ../../../../

    a-4. 解壓:

    tar  -xzf  sphinx-1.3.0.tgz

    a-5. 安裝php-devel:

    yum  -y  install  php  php-devel

    a-6. 進入目錄:

    cd  sphinx-1.3.0

    a-7. 安裝:

    phpize
    ./configure --with-php-config=/usr/bin/php-config --with-sphinx=/usr/local/sphinxclient
    make && make install

    a-8. 開啟php-sphinx擴展:
    vim /etc/php.ini

    在末尾加上:
    [sphinx]
    extension=sphinx.so

    b. 測試:
    b-1. 啟動mariadb服務:

    systemctl  start  mariadb

    b-2. 添加測試數據:

    mysql  -uroot  -p123456  <  /usr/local/coreseek/etc/example.sql

    b-3. 復制配置文件:

    cp  /usr/local/coreseek/etc/sphinx.conf.dist  /usr/local/coreseek/etc/csft.conf
    cp  /home/lee/sphinx/coreseek-4.1-beta/mmseg-3.2.14/data/*  /usr/local/mmseg3/etc/

    b-4. 修改配置文件:
    vim /usr/local/coreseek/etc/csft.conf

    source src1
    {
    type            = mysql
    sql_host        = localhost
    sql_user        = root
    sql_pass        = 123456
    sql_db          = test
    sql_port        = 3306  # optional, default is 3306
    sql_query_pre = SET NAMES utf8
    sql_sock = /var/lib/mysql/mysql.sock
    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_ranged_throttle = 0
    sql_query_info_pre = SET NAMES utf8
    sql_query_info      = SELECT * FROM documents WHERE id=$id
    }
    source src1throttled : src1
    {
    sql_ranged_throttle = 100
    }
    index test1
    {
    source          = src1
    path            = /usr/local/coreseek/var/data/test1
    docinfo         = extern
    mlock           = 0
    morphology      = none
    min_word_len        = 1
    html_strip      = 0
    charset_dictpath = /usr/local/mmseg3/etc/
    charset_type        = zh_cn.utf-8
    }
    indexer
    {
    mem_limit       = 128M
    }
    searchd
    {
    listen          = 9312
    listen          = 9306:mysql41
    log         = /usr/local/coreseek/var/log/searchd.log
    query_log       = /usr/local/coreseek/var/log/query.log
    read_timeout        = 5
    client_timeout      = 300
    max_children        = 30
    pid_file        = /usr/local/coreseek/var/log/searchd.pid
    max_matches     = 1000
    seamless_rotate     = 1
    preopen_indexes     = 1
    unlink_old      = 1
    mva_updates_pool    = 1M
    max_packet_size     = 8M
    max_filters     = 256
    max_filter_values   = 4096
    max_batch_queries   = 32
    workers         = threads # for RT to work
    }

    b-5. :復制二進制文件:

    cp  /usr/local/coreseek/bin/*  /usr/bin/

    b-6. 生成索引:

    indexer  --rotate  --all

    b-7. 啟動服務:

    searchd

    b-8. 停止服務:

    searchd  --stop

    b-9. 測試:
    b-9-1. 編寫測試腳本:
    vim test.php

    <?php
    $sphinx = new SphinxClient();
    $sphinx->SetServer("127.0.0.1",9312);
    $sphinx->SetMatchMode(SPH_MATCH_ALL);
    $sphinx->SetLimits(0, 20, 1000);
    $sphinx->SetArrayResult(true);
    $result = $sphinx -> query("one","test1");
    var_dump($result);

    b-9-2. 運行腳本:
    php test.php
    技術分享圖片

  • centos7安裝配置coreseek(sphinx)