LNMP+coreseek(sphinx+mmseg3)搭建全文索引库_sgk

前言,为什么要安装LNMP,这个环境以及把常用的MySQL+PHP搭建好了,初学者省去一部分精力调试错误,而且LNMP已经很稳定很成熟。

一、 LNMP安装。

下载:http://lnmp.org/download.html

二、 Coreseek(sphinx+mmseg3)安装。

注意:输出的warning信息可以忽略,如果出现error则需要解决,正常无回显 。

1. 下载coreseek-4.1-beta.tar.gz并解压。

http://dl.download.csdn.net/down11/20160530/de90462e2cf8350cbd4ad0f758105c9d.gz?response-content-disposition=attachment%3Bfilename%3D%22coreseek-4.1-beta.tar.gz%22&OSSAccessKeyId=9q6nvzoJGowBj4q1&Expires=1474603028&Signature=rLQ1RFgtXKUJmrbCwDJynFLmRi0%3D

# cd ~

# wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz  

# tar zxvf coreseek-4.1-beta.tar.gz  

2. 安装mmseg3

# cd /opt/coreseek-4.1-beta/mmseg-3.2.14  

# ./bootstrap  

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

# make && make install  

遇到的问题:

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

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

解决方案:

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

# yum -y install libtool  

# aclocal  

# libtoolize --force  

# automake --add-missing  

# autoconf  

# autoheader  

# make clean  

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

3. 安装coreseek

# cd /opt/coreseek-4.1-beta/csft-4.1

# ./buildconf.sh

//下面参数里mysql路径一定要指定

#./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

# make && make install  

 

 

遇到的问题:

at  -L/usr/local/lib -lrt  -lpthread

libsphinx.a(sphinx.o): In function `xmlUnknownEncoding‘:

/root/coreseek-4.1-beta/csft-4.1/src/sphinx.cpp:22292: undefined reference to `libiconv_open‘

/root/coreseek-4.1-beta/csft-4.1/src/sphinx.cpp:22310: undefined reference to `libiconv‘

/root/coreseek-4.1-beta/csft-4.1/src/sphinx.cpp:22316: undefined reference to `libiconv_close‘

collect2: ld returned 1 exit status

make[2]: *** [indexer] Error 1

make[2]: Leaving directory `/root/coreseek-4.1-beta/csft-4.1/src‘

make[1]: *** [all] Error 2

make[1]: Leaving directory `/root/coreseek-4.1-beta/csft-4.1/src‘

make: *** [all-recursive] Error 1

解决方案:

修改MakeFile文件

#vi /opt/coreseek-4.1-beta/csft-4.1/src

在157行左右增加一个-liconv参数,将

LIBS = -lm -lexpat -L/usr/local/lib

改成

LIBS = -lm -lexpat -liconv -L/usr/local/lib

4. 创建编辑配置文件。

# cd /usr/local/coreseek/etc
# cp sphinx-min.conf.dist csft.conf

修改下面内容,MySQ连接信息,其他默认。

source spdb1

{

type                   = mysql

sql_host                = localhost

sql_user                = test

sql_pass                = mima

sql_db                  = test

sql_port                = 3306

sql_query_pre           = SET NAMES utf8

sql_query               = SELECT `id`, 1 AS table_id, `username`, `email`, `password` FROM spdb1

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

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

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

sql_query_info          = SELECT * WHERE ID=$id #命令行查询时,从数据库读取原始数据信息

}

source spdb2 : spdb1

{

sql_query = SELECT `id`, 2 AS table_id, `username`, `email`, `password` FROM spdb2

}

source spdb3 : spdb1

{

sql_query = SELECT `id`, 3 AS table_id, `username`, `email`, `password` FROM spdb3

}

source spdb4 : spdb1

{

sql_query = SELECT `id`, 4 AS table_id, `username`, `email`, `password` FROM spdb4

}

source spdb5 : spdb1

{

sql_query = SELECT `id`, 5 AS table_id, `username`, `email`, `password` FROM spdb5

}

#index定义

index spdb1

{

source            = spdb1    #对应的source名称

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

docinfo           = extern

mlock             = 0

morphology        = none

min_word_len      = 1

ondisk_dict       = 1

html_strip        = 0

#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/

#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾

charset_dictpath = /usr/local/mmseg3/etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...

charset_type        = zh_cn.utf-8

}

index spdb2 : spdb1

{

source = spdb2

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

}

index spdb3 : spdb1

{

source = spdb3

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

}

index spdb4 : spdb1

{

source = spdb4

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

}

index spdb5 : spdb1

{

source = spdb5

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

}

#全局index定义

indexer

{

mem_limit            = 200M   #默认32M,不要太大,否则会报错

}

#searchd服务定义

searchd

{

listen               = 9312   #查询服务监听端口,开启了才会工作

read_timeout         = 5      #超时

max_children         = 30     #最大进程

max_matches          = 1000   #返回1000条

seamless_rotate      = 0

preopen_indexes      = 0

unlink_old           = 1

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

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

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

binlog_path =                                #关闭binlog日志

}

5. 一些技巧:

rm -rf /usr/local/coreseek/var/data/*.*      //删除已生成的索引

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all --rotate //生成所有索引

/usr/local/coreseek/bin/searchd --stop     //停止服务,重新生成前先停止

/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf //启动searchd服务

/usr/local/coreseek/bin/searchd --status   //查看状态

/usr/local/coreseek/bin/search 123456    //本机搜索

rm -rf /var/lock/subsys/mysqld   //Mysql易锁,删除锁定文件

单独生成每个表的索引

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

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

更新增量索引

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

合并2个表索引

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --merge mydb1 mydb2 --rotate --merge-dst-range deleted 0 0

参考文章:

http://www.111cn.net/database/mysql/87753.htm

http://blog.chinaunix.net/uid-20639775-id-3261834.html

时间: 2024-10-23 00:36:29

LNMP+coreseek(sphinx+mmseg3)搭建全文索引库_sgk的相关文章

搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例

http://blog.csdn.net/e421083458/article/details/21529969 常用的命令 ps -ef|grep searchd 如果你开了search服务后,你命令比如 indexer search 后面都需要带上 --rotate ./indexer --all ./searchd 至于其它什么命令 看手册 collect2: ld returned 1 exit status make[2]: *** [indexer] Error 1 make[2]:

coreseek(sphinx+mmseg3),php下sphinx扩展安装和php示例

搭建coreseek(sphinx+mmseg3)安装 [第一步] 先安装mmseg3 1 cd /root/install 2 wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz 3 tar zxvf coreseek-4.1-beta.tar.gz 4 5 cd coreseek-4.1-beta 6 cd mmseg-3.2.14 7 ./bootstrap 8 ./configure --prefix

LNMP+zabbix分布式监控搭建及版本升级

LNMP+zabbix分布式监控搭建需要组件:gcc gcc-c++ openssl* pcre pcre-devel gd gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel autoconf automake imake expat-devel cmake libaio libaio-devel bzr bison libtool ncurses5-devel ncurses-devel ne

coreseek/sphinx中的匹配模式

所谓匹配模式就是用户如何根据关键字在索引库中查找相关的记录. SPH_MATCH_ALL, 匹配所有查询分词(默认模式); 如"手机配件",不匹配 "我有一部手机",但可以匹配 "手机坏了,需要找配件". 因为"手机配件" 被分成 "手机","配件"两个词,匹配条件是必须同时包含这两个词,所以"我有一部手机"不符合匹配要求. SPH_MATCH_ANY, 匹配查询词中

Coreseek/sphinx全文检索的了解

Coreseek/sphinx全文检索的了解 概述: 全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法,全文检索是将存储于数据库中整本书.整篇文章中的任意内容信息查找出来的检索.它可以根据需要获得全文中有关章.节.段.句.词等信息,也可以进行各种统计和分析. 定义: 全文检索易龙天网的设计师认为可以把它划分为二部分: 全文 全文顾名思义:就是全文检索的对象,它可能是一段话,也可能是一片文章,它可能是一个文件比如:word,txt也能是任意一种扩展名结尾的文件 检索 描文章中的每一个词

VPS CentOS-6 下 LNMP HTTP服务器的搭建

VPS CentOS-6 下 LNMP HTTP服务器的搭建 前言 恢复更新后的第一篇博文, 前段时间由于各种理由, 把博客更新给宕掉了, 个人独立博客的开发也搁浅了, 现在随着工作的逐步稳定, 决心把博客重新恢复更新, 继续记录着代码路上的一点一滴. 在上篇博文中提到, 笔者将把工作和学习环境全面转移到Linux, 转移也没什么目的, Windows用久了, 换个口味.目前使用的Linux环境是 Ubuntu 14.04, 该版本是一个长期支持版本, 对于想试一试Linux系统的朋友, 也是值

coreseek(sphinx)错误:WARNING: attribute 'id' not found - IGNORING

coreseek(sphinx)错误:WARNING: attribute 'id' not found - IGNORING原因及解决方法 coreseek(sphinx)建立索引时提示错误: WARNING: attribute 'id' not found - IGNORING 原因: sphinx不能使用主键来做属性字段,你的索引配置文件中一定用了类似 sql_attr_uint = id (id为表的主键) 解决方法: 去掉sql_attr_uint = id 或改为 sql_quer

如何搭建组件库(基础实战篇)

一.搭建组件库有什么好处? 让设计更高效.开发更迅速.产品体验更一致.很多大厂也做了自己的组件库,比如Ant Design,Element等,一个成熟的组件库确实让产品的体验更好,团队的效率更高.如果你也想开始搭建你们产品自己的组件库,希望本文能帮助到你. 二.什么样的模块可以成为组件? 重复使用,如果一个模块需要重复使用,那么可以认为它是一个组件,比如说Search Bar,Tab等. 三.如何来搭建组件库? 1.对所有组件进行分类 参考Ant Design的分类方式,如果你们的开发采用Ant

coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解

  一, 前言    1,研究coreseek的动机 我有一个自己的笔记博客,经常在上面做一些技术文章分析.在查询一些文章的时候,以前只能将要查询的内容去mysql中用like模糊匹配.在文章多了的情况下,这样做法效率肯定不行.于是我把目标投向了中文搜索插件coreseek,并成功的把它使用到了我的项目当中.我的博客网址:http://www.note.xin3e.com/ 效果图: 希望通过这篇分析,让有兴趣的同学少走些弯路. 2,概念介绍 sphinx是开源的搜索引擎,它支持英文的全文检索.