zoukankan      html  css  js  c++  java
  • linux系统环境下搭建coreseek(+mmseg3) (good)

     

    1、下载并解压coreseek软件,操作命令如下:

    wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

    说明:文件下载在系统当前目录中
    tar xzvf coreseek-3.2.14.tar.gz
    说明:文件解压在系统当前目录中
    cd coreseek-3.2.14

    2、安装coreseek

    2.1、安装mmseg3

    cd mmseg-3.2.14

    说明:进入mmseg3安装目录

    ./bootstrap 

    ./configure --prefix=/usr/local/mmseg3 

    make && make install

    说明:输出的warning信息可以忽略,如果出现error则需要解决

    遇到的问题: 

    error: cannot find input file: src/Makefile.in 

    或者遇到其他类似error错误时... 

    解决方案: 

    依次执行下面的命令,如果运行'aclocal'时又出现了错误,解决方案看下文描述 

    yum -y install libtool 

    aclocal 

    libtoolize --force 

    automake --add-missing 

    autoconf 

    autoheader 

    make clean

    cd .. #退出mmseg3安装目录

    安装好'libtool'继续从'aclocal'开始执行上面提到的一串命令,执行完后再运行最开始的安装流程即可。

    2.2、安装coreseek

    cd csft-3.2.14

    sh buildconf.sh

    说明:输出的warning信息可以忽略,如果出现error则需要解决 

    ./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=/usr/local/mysql 

     

    说明:如果提示mysql问题,可以查看MySQL数据源安装说明  http://www.coreseek.cn/product_install/install_on_bsd_linux/#mysql 

    make && make install 

    cd .. #退出csft-3.2.14目录

    出现这个 xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing XML libra  错误执行以下命令:

    yum -y install expat expat-devel

    依次安装后,从新安装coreseek,然后再生成索引,就可以通过了。

    3、coreseek系统配置执行

    3.1、创建配置sphinx与mysql的配置文件

    安装完成后:进入coreseek-3.2.14/testpack/etc目录中的csft_msyql.conf文件,建议下载到本地修改,设置如下:

    #源定义

    source mysql

    {

        type       = mysql #源的名称

        sql_host    = localhost #服务器地址

        sql_user    = root #数据库帐户

        sql_pass    = 123456 #数据库密码

        sql_db      = buy #数据库名称

        sql_port     = 3306 #数据库访问端口

        sql_query_pre= SET NAMES utf8 #数据库访问编码

        sql_query=SELECT ProductID as productid,ClassID as classid,UNIX_TIMESTAMP(AddTime) AS date_added ,ProductTitle as producttitle,TyNames as tynames,ProductBatch as productbatch,CompanyTitle as companytitle FROM products

                                                                  #sql_query第一列productid需为整数

    # producttitle、productbatch、tynames、companytitle作为字符串/文本字段,被全文索引

    sql_attr_uint = classid           #从SQL读取到的值必须为整数

    sql_attr_timestamp        = date_added

    #从SQL读取到的值必须为整数,作为时间属性

    sql_query_info_pre=SET NAMES utf8                                        #命令行查询时,设置正确的字符集

    sql_query_info= SELECT * FROM products WHERE ProductID=$id

    #命令行查询时,从数据库读取原始数据信息

    }

    #index定义

    index mysql

    {

        source            = mysql             #对应的source名称

        path            = /usr/local/coreseek/var/data

    #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

        docinfo            = extern

        mlock            = 0

        morphology        = none

        min_word_len        = 1

        html_strip                = 0

      #中文分词配置,详情请查看:

        charset_type        = zh_cn.utf-8

    }

    #全局index定义

    indexer

    {

        mem_limit            = 128M

    }

    #searchd服务定义

    searchd

    {

        listen                  =   9312

        read_timeout        = 5

        max_children        = 30

        max_matches            = 1000

        seamless_rotate        = 0

        preopen_indexes        = 0

        unlink_old            = 1

        pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid 

    #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

        log = /usr/local/coreseek/var/log/searchd_mysql.log       

    #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

        query_log = /usr/local/coreseek/var/log/query_mysql.log

    #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

    }

    3.2、中文分词核心配置

     

    3.2.2、生成分词库 (注意 mmseg的位置)

    /usr/local/mmseg3/bin/mmseg  -u  /usr/local/mmseg3/etc/thesaurus.txt

    说明:生成一个thesaurus.txt.uni文件,改名为uni.lib即可,thesaurus.txt必须为UTF-8格式,内容编写规则请查看官方文档。

     

    3.3、生成索引

    3.3.1、执行索引(查询、测试前必须执行一次)

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

    3.4、启动守护程序

    3.4.1、启动后台服务(必须开启)

    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf

    3.4.2、关闭后台服务

    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --stop

    3.43 查找服务

      /usr/local/coreseek/bin/search -c  /usr/local/coreseek/etc/csft_mysql.conf -a 衬衣

    四、设置coreseek开机自动后台运行

    vi /etc/rc.d/rc.local #编辑,在最后一行添加下面的代码

    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf

    :wq!  #保存退出

    3.5、自动化命令

    crontab -e

     

    30 1 * * *  /bin/sh /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all --rotate

    说明:以下任务计划的意思是:每天1:30执行整体索引。

  • 相关阅读:
    学习java第20天
    学习java第19天
    学习java第18天
    学习java第17天
    学习java第16天
    java架构师学习路线-Web分布式开发框架概述
    java架构师学习路线-并发编程的概念
    java架构师学习路线-Java系统中的微服务框架
    java架构师学习路线-HashMap的知识点总结归纳
    java架构师学习路线-Java并发编程的五种状态和两种创建方式
  • 原文地址:https://www.cnblogs.com/sanwenyu/p/4828841.html
Copyright © 2011-2022 走看看