itlius 2016-08-18 08:46:03 3927次浏览 1条回复 0 0 0

更新依赖包以及安装编译环境

yum -y install m4 autoconf automake libtool

yum -y install gcc gcc-c++ wget

yum -y install mysql-devel

下载coreseek

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

mmseg3是一个中文分词插件

tar xzvf 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

cd ../csft-3.2.14/
sh buildconf.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

vi src/sphinxexpr.cpp

然后将所有的T val = ExprEval ( this->m_pArg, tMatch ).....修改为

T val = this->ExprEval ( this->m_pArg, tMatch )

make make install

错误 collect2: ld 返回 1 make[2]: [indexer] 错误 1 make[2]: Leaving directory `/setup/coreseek-3.2.14/csft-3.2.14/src' make[1]: [all] 错误 2 make[1]: Leaving directory `/setup/coreseek-3.2.14/csft-3.2.14/src'

make: *** [all-recursive] 错误 1

解决 一开始以为libiconv的问题,又重装了几次还是一样,最后终于找着办法了 编辑: ./src/MakeFile文件 将 LIBS = -lm -lexpat -L/usr/local/lib 改成 LIBS = -lm -lexpat -liconv -L/usr/local/lib

或解决办法:打开configure文件,找到“#define USE_LIBICONV 1”,将注释去掉,并将1改成0。

cd /usr/local/coreseek/etc

进入配置目录通过命令ls可以看到3个文件 example.sql sphinx.conf.dist sphinx-min.conf.dist

其中example.sql是示例sql脚本我们将其导入到数据库中的test数据库中作为测试数据(会创建两张表 documents和tags)

vi sphinx.conf 输入以下内容

source src1
{
	type					= mysql
	sql_host				= localhost
	sql_user				= root
	sql_pass				= 12345678
	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
}
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
}
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
}

说明: 代码段source src1{} 代表数据源里面主要包含了数据库的配置信息,src1表示数据源名字,可以随便写。 代码段index test1{} 代表为哪个数据源创建索引,与source *** 是成对出现的,其中的source参数的值必须是某一个数据源的名字。 其他参数可以查看手册,这里不再赘述。 生成索引 /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all 启动命令 /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf 其中参数--all表示生成所有索引 当然也可以是索引的名字例如:。 执行后可以在/usr/local/coreseek/var/data目录中看到多出一些文件,是以索引名为文件名的不同的扩展名的文件 在不启动sphinx的情况下即可测试命令: /usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/sphinx.conf 广东

windows下创建sphinx 1、进入coreseek文件夹下 2、创建索引 .\bin\indexer.exe -c .\etc\配置文件名字 --all 3、开启索引 .\bin\searchd.exe -c .\etc\配置文件 4、如果用docs操作进行搜索 : .\bin\search.exe -c .\etc\配置文件名字 搜索关键值

  • 回复于 2016-08-18 08:51 举报

    好像官网下载不了,好尴尬啊,我先是在Windows百度找一个下载好,上传到linux。用的是FZ

您需要登录后才可以回复。登录 | 立即注册