摘要:软件安装包安装环境系统环境核软件环境安装更新依赖包和安装编译环境安装在安装的过程中出现了三种错误情况,错误情况如下错误记录,可以参考修改即可配置配置文件配置文件主要修
软件安装包
</>复制代码
安装环境
系统环境
centos7.2
1核2G
软件环境
coreseek-3.2.14
lnmp1.5
</>复制代码
安装mmseg
更新依赖包和安装编译环境
</>复制代码
yum -y install m4 autoconf automake libtool
yum -y install gcc gcc-c++ wget
yum -y install mysql-devel
</>复制代码
安装coreseek
</>复制代码
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
make
make install
在安装csft的过程中出现了三种错误情况,错误情况如下错误记录,可以参考修改即可
</>复制代码
配置coreseek配置文件
配置文件主要修改的几个地方如下,具体的修改信息请参见 coreseek配置文件 目录的进行配置
</>复制代码
source src1
{
type = mysql #数据库类型
sql_host = localhost # MySQL主机IP
sql_user = root # MySQL用户名
sql_pass = 123 # MySQL密码
sql_db = test # MySQL数据库
sql_port = 3306 # MySQL端口
sql_sock = /tmp/mysql.sock #如果是linux下需要开启,指定sock文件
sql_query_pre = SET NAMES UTF8 # MySQL检索编码
sql_query_pre = SET SESSION query_cache_type=OFF #关闭缓存
sql_query = #获取数据的SQL语句
SELECT id, title, content FROM post
#sql_attr_uint = group_id #对排序字段进行注释
#sql_attr_timestamp = date_added #对排序字段进行注释
sql_query_info = SELECT * FROM post WHERE id=$id
} #这行不需要修改
source srclthrottled:srcl #继承主数据源
主数据源索引:
index text1
{
source = src1 #索引源声明
charset_type = utf-8 #数据编码(设置成utf8)
charset_table = #上面指定了utf-8,这里需要开启
}
增量索引
index testlstemmed:test1 #先进行注释
index distl #分布式也注释掉
索引器设置
indexer
{
mem_limit = 256M # 内存大小限制 默认是 32M, 推荐为 256M
} #其他用默认即可
sphinx服务进程searchd的相关配置
searchd {
} #全部用默认的就可以了
除了上述的配置项外还需要多带带配置几项(如果你是安装的sphinx则进行上述配置即可,如果是coreseek则还需要配置下述内容)
</>复制代码
index test1
{
#stopwords = G:datastopwords.txt
#wordforms = G:datawordforms.txt
#exceptions = /data/exceptions.txt
#charset_type = sbcs
添加下面这两行,意思是把中文分词加入到配置文件中
charset_type = zh_cn.utf-8
charset_dictpath = /usr/local/mmseg/etc/ #你安装mmseg的目录
}
</>复制代码
数据库操作
</>复制代码
// 创建数据库
create database test;
// 创建数据表
userinfo | CREATE TABLE `userinfo` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`age` int(3) NOT NULL,
`sex` enum("女","男") NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4
// 插入数据
INSERT INTO `userinfo` VALUES (1,"张三",12,"女"),(2,"李四",13,"男"),
(3,"小明",12,"女"),(4,"小红",13,"女"),(5,"小四",12,"女"),(6,"章泽天",13,"女");
</>复制代码
创建索引数据(indexer)
</>复制代码
// 第一次创建索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all
// 第二次创建所以(当我们第一次创建索引之后,对数据表做了新的操作再按照上面的方式生成索引是会多增加一个参数)
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf -rotate option
如果上述的操作执行正确,则会提示如下信息
</>复制代码
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)
using config file "/usr/local/coreseek/etc/csft.conf"...
WARNING: no such index "-rotate", skipping.
WARNING: no such index "option", skipping.
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
</>复制代码
测试索引数据(search)
</>复制代码
/usr/local/coreseek/bin/search "小"
正常情况下会出现下述信息
</>复制代码
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)
using config file "/usr/local/coreseek/etc/csft.conf"...
index "test1": query "小 ": returned 3 matches of 3 total in 0.004 sec
displaying matches:
1. document=3, weight=1
2. document=4, weight=1
3. document=5, weight=1
words:
1. "小": 3 documents, 3 hits
</>复制代码
启动searchd服务
该服务是可以在/usr/local/coreseek/etc/csft.conf文件中的searchd配置项中配置,默认服务的端口已经配置,可以不多带带做配置
</>复制代码
// 启动服务
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf
// 检测服务启动情况
[root@test ~]# netstat -anp | grep 9312
tcp 0 0 0.0.0.0:9312 0.0.0.0:* LISTEN 31672/searchd
</>复制代码
创建测试代码
测试代码可以参见分享文件中的 测试代码 目录
</>复制代码
require "./api/sphinxapi.php";
$sphinx = new SphinxClient();
$sphinx->SetServer("127.0.0.1", 9312);
$sphinx->SetArrayResult(true);
$sphinx->SetMatchMode(SPH_MATCH_ALL);
$sphinx->SetSortMode(SPH_SORT_RELEVANCE);
$result = $sphinx->query("小", "*");
var_dump($result);
查询出的结果如下
</>复制代码
array(10) {
["error"]=>
string(0) ""
["warning"]=>
string(0) ""
["status"]=>
int(0)
["fields"]=>
array(3) {
[0]=>
string(4) "name"
[1]=>
string(3) "age"
[2]=>
string(3) "sex"
}
["attrs"]=>
array(0) {
}
["matches"]=>
array(3) {
[0]=>
array(3) {
["id"]=>
int(2)
["weight"]=>
string(1) "1"
["attrs"]=>
array(0) {
}
}
[1]=>
array(3) {
["id"]=>
int(3)
["weight"]=>
string(1) "1"
["attrs"]=>
array(0) {
}
}
[2]=>
array(3) {
["id"]=>
int(4)
["weight"]=>
string(1) "1"
["attrs"]=>
array(0) {
}
}
}
["total"]=>
string(1) "3"
["total_found"]=>
string(1) "3"
["time"]=>
string(5) "0.003"
["words"]=>
array(1) {
["小"]=>
array(2) {
["docs"]=>
string(1) "3"
["hits"]=>
string(1) "3"
}
}
}
coreseek错误记录
</>复制代码
安装coerseek问题一
</>复制代码
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 ),共有三处。
</>复制代码
安装coreseek错误二
</>复制代码
make[2]: *** [tokenizer_zhcn.o] Error 1
make[2]: Leaving directory `/home/zyf/zyfwork/csft3.1b3/src’
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/zyf/zyfwork/csft3.1b3/src’
make: *** [all-recursive] Error 1
/usr/local/sphinx/src/sphinx.cpp:15557: undefined reference to `libiconv_open’
libsphinx.a(sphinx.o)(.text+0x53a01):/usr/local/sphinx/src/sphinx.cpp:15575: undefined
reference to `libiconv’
libsphinx.a(sphinx.o)(.text+0x53a28):/usr/local/sphinx/src/sphinx.cpp:15581: undefined
reference to `libiconv_close’
collect2: ld returned 1 exit status
make[2]: * [indexer] Error 1
make[2]: Leaving directory `/usr/local/sphinx/src’
make[1]: * [all] Error 2
make[1]: Leaving directory `/usr/local/sphinx/src’
make: * [all-recursive] Error 1
修改 configure 文件把 #define USE_LIBICONV 0 最后的数值由1改为0
</>复制代码
安装coreseek问题三
</>复制代码
db_interface_mysql.h:32:25: 致命错误:mysql/mysql.h:没有那个文件或目录
// ubuntu系统解决方案
sudo apt-get install libmysqlclient-dev
// centos7解决方案
sudo yum install mysql-devel
</>复制代码
参考链接
参考链接一
参考链接二
参考链接三
</>复制代码
安装路径
</>复制代码
/usr/local/coreseek
</>复制代码
配置目录
</>复制代码
/usr/local/coreseek/etc/
</>复制代码
执行程序目录
</>复制代码
/usr/local/coreseek/bin/
</>复制代码
配置文件说明
进入配置目录,你会找到如下几个文件
</>复制代码
-rw-r--r--. 1 root root 905 10月 13 21:27 example.sql
-rw-r--r--. 1 root root 18954 10月 13 21:27 sphinx.conf.dist
-rw-r--r--. 1 root root 956 10月 13 21:27 sphinx-min.conf.dist
将sphinx.conf.dist文件复制一份名为csft.conf即可.其余文件可以不管.
</>复制代码
执行程序说明
进入执行程序目录可以看到如下几个文件,具体参考请见sphinx文档
</>复制代码
-rwxr-xr-x. 1 root root 7032560 10月 13 21:27 indexer // 生成索引程序
-rwxr-xr-x. 1 root root 6650552 10月 13 21:27 indextool // 调试程序
-rwxr-xr-x. 1 root root 6740544 10月 13 21:27 search // 搜索程序
-rwxr-xr-x. 1 root root 7970448 10月 13 21:27 searchd // 提供客户端查询索引服务
-rwxr-xr-x. 1 root root 6370256 10月 13 21:27 spelldump // 提取字典内容
</>复制代码
分享文件目录说明
</>复制代码
├── api.zip // coreseek类文件(该文件和测试代码目录下的api.zip是一样的)
├── coreseek-3.2.14.tar.gz // coreseek安装程序文件
├── coreseek配置文件
│ └── csft.conf // 上述 配置coreseek配置文件 步骤中提交到的配置文件
├── 测试代码
│ ├── api.zip
│ └── index.php // 测试代码
└── 测试数据库
└── test.sql // 测试数据库
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29533.html
摘要:负责从拉取数据源,把数据源分词,建立索引搜索模块工作流程如下模块从中拉取数据模块用经过中文分词后的数据建立索引客户端向模块发起搜索请求模块查找索引中的数据模块得到索引中符合要求的数据的等数据把数据返回给客户端 (整理自《App后台开发运维和架构实践》 作者:曾健生) 一、从业务逻辑中提炼API接口 此过程可分为六个阶段: 业务逻辑思维导图 功能——业务逻辑思维导图 基本功能模块关系 ...
摘要:负责从拉取数据源,把数据源分词,建立索引搜索模块工作流程如下模块从中拉取数据模块用经过中文分词后的数据建立索引客户端向模块发起搜索请求模块查找索引中的数据模块得到索引中符合要求的数据的等数据把数据返回给客户端 (整理自《App后台开发运维和架构实践》 作者:曾健生) 一、从业务逻辑中提炼API接口 此过程可分为六个阶段: 业务逻辑思维导图 功能——业务逻辑思维导图 基本功能模块关系 ...
阅读 1519·2021-10-08 10:04
阅读 815·2021-09-07 09:58
阅读 3021·2019-08-30 15:55
阅读 2548·2019-08-29 17:21
阅读 2255·2019-08-28 18:04
阅读 3152·2019-08-28 17:57
阅读 816·2019-08-26 11:46
阅读 2361·2019-08-23 17:20
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要