文档章节

Linux服务器安装coreseek

webphp
 webphp
发布于 2017/07/26 11:28
字数 2080
阅读 45
收藏 1
一、Coreseek中文全文检索引擎
    Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论 坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用
二、Coreseek简介
    Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论 坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景。商业使用(例如, 嵌入到其他程序中)需要获得商业授权。
Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek可以非常容易的与SQL数据库和脚本语言集成。
在Sphinx发行版本中提供的原生搜索API支持PHP、Python、Perl、Rudy和Java。搜索API非常轻量化,可以在几个小时之内移植 到新的语言上。第三方API接口和插件提供了对Perl、C#、Haskell、Ruby-on-Rails支持,以及对其他可能的语言或者框架的支持。版本有:Coreseek3.2稳定版、Coreseek4.1测试版、Coreseek5最新版
三、安装Coreseek
    1、下载coreseek3.2稳定版,地址为: http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
    最近发面coreseek的官网访问不了了,贴上下载地址 http://pan.baidu.com/s/1dEJazcd  密码:4t2w
    2、进入你的存放安装包的目录,然后wget   http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
    3、tar -xzvf coreseek-3.2.14.tar.gz
    4、cd coreseek-3.2.14
    5、安装coreseek之前需要先安装需要预装的软件(注:我的linux系统为centos 64位)
             yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel
    6、安装mmseg
         cd mmseg-3.2.14
         ./bootstrap  #输出的warning信息可以忽略,如果出现error则要解决
         ./configure --prefix=/use/local/mmseg3
         make && make install
         cd ..
         #安装完成后,mmseg使用的词典和配置文件,将自动安装 到/usr/local/mmseg3/etc目录中
         #中文分词测试,如果显示不正常,请检查当前环境下的locale和utf-8中文字符显示设置
         #测试mmseg安装是否成功
          /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc/ /mnt/coreseek-3.2.14/mmseg-3.2.14/src/t1.txt
         这里注意t1.txt的文件的路径,因为我把coreseek的安装包下载并解压在了/mnt目录下,所以这里根据自己的实际路径来
         有图
      7、安装Coreseek
              cd /mnt/coreseek-3.2.14/csft-3.2.14
              #进行编译配置
              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
               如查提示找不到mysql includes file则使用下面的编译命令
               ./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-includes=/alidata/server/mysql/include/ --with-mysql-libs=/alidata/server/mysql/bin/
              make && make install
     8、测试Coreseek
         cd ../testpack
         /usr/local/coreseek/bin/indexer -c etc/csft.conf
         #以下为正常情况显示的信息
         有图
四、配置Coreseek支持Mysql数据库
    1、配置csft_mysql.conf文件
         复制mysql配置文件到coreseek安装目录下etc/下,(比如/usr/local/coreseek/etc/)
          cp /usr/local/src/coreseek-3.2.14/testpack/etc/csft_mysql.conf /usr/local/coreseek/etc/
        cd /usr/local/coreseek/etc/
        vim csft_mysql.conf
         官方参考文档: mysql数据源 http://www.coreseek.cn/products-install/datasource/,
          不过在终结这篇日志的时候,发现coreseek的官网打不开了
         下面的示例是本人的配置,因为项目在后期中使用的是coreseek,所有在项目中有很多表,不是把所有的文档都存放在基础表中的,所有就引用以下这样的配置,因为是多张表,把每张表都形成一个table_id,然后将取出的数据根据table_id的值对应不同的表,获取mysql的数据
#源定义(项目数据源)
source project
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =111111
sql_db = newturen
sql_port =3306
sql_query_pre = SET NAMES utf8
sql_query = SELECT id,1 as table_id,title,en_title keyword,content FROM tu_project
#sql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint = table_id #从SQL读取到的值必须为整数
#sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性
sql_query_info_pre = SET NAMES utf8 #命令行查询时,设置正确的字符集
#sql_query_info = SELECT * FROM tu_books WHERE id=$id #命令行查询时,从数据库读取原始数据信息
}
#新闻数据源
source news : project{
sql_query = SELECT id,2 as table_id,title,brief,keyword,content FROM tu_news
}
#学术交流数据源
source academic : project{
sql_query = SELECT id,3 as table_id,title,keyword FROM tu_academic
}
#视频数据源
source video : project{
sql_query = SELECT id,4 as table_id,title,brief,content FROM tu_video
}
#出版物数据源
source paper : project{
sql_query = SELECT id,5 as table_id,subject,abstract,keyword,content FROM tu_paper
}
#index定义(项目索引)
index project
{
source = project #对应的source名称
path =/mnt/coreseek/data/project #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
docinfo =extern
mlock =0
morphology = none
min_word_len =1
html_strip =1
#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
charset_dictpath =/usr/local/mmseg3/etc/#BSD、Linux环境下设置,/符号结尾
#charset_dictpath = etc/ #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
charset_type = zh_cn.utf-8
}
#(新闻索引)
index news : project{
source = news
path =/mnt/coreseek/data/news
}
#(学术交流索引)
index academic : project{
source = academic
path =/mnt/coreseek/data/academic
}
#(视频索引)
index video : project{
source = video
path =/mnt/coreseek/data/video
}
#全局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 =/var/log/searchd_mysql.pid #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log =/var/log/searchd_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log =/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
}
         2、创建索引
              注:路径要根据自己在服务器的实际路径为主
               可能出现的错误
               ERROR: index 'phperz': sql_connect: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) (DSN=mysql://root:***@localhost :3306/phperz).
               这是因为mysql的sock文件路经不正确导致的.
               确认一下你的mysql.sock路经,建立一个软连接,比如
               ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
五、Coreseek+php使用方式
     复制安装止录下的mnt/coreseek-3.2.14/testpack/api/sphinxapi.php文件到你的项目里
    你的程序里include sphinxapi.php
    php使用方法见/usr/local/src/coreseek-3.2.14/testpack/api/test.php
    另附我的使用方法,我的项目用CI框架开发,所以sphinxapi.php的文件名必须要和类名相同,并且首字母大写,我放到了library目录,我把以下示例放在一个modle中,可以多处传值使用
/**
* 通过接口请求返回数据
* @param string $search_name 搜索名称
* @param string $search_type 搜索类型
* @param int $stat_page 开始页数
* @param int $page_size 每页记录数
* @author Baip
*/
publicfunction sphinxApi($search_name, $search_type, $stat_page, $page_size){
//加载并实列化sphinx接口,在libtaries文件夹中有两个接口文件,sphinxclient为win环境的sphinxclient_linux为linux系统,上线请注意修改名称
$this->load->library('sphinxclient');
$sphinx =newSphinxClient();
//sphinx的主机名和端口
$sphinx->SetServer(config_item('sphinx_host'), config_item('sphinx_port'));
//设置匹配方式
$sphinx->SetMatchMode(SPH_MATCH_ANY);
//查询结果根据相似度排序
$sphinx->SetSortMode(SPH_SORT_RELEVANCE);
//设置返回结果集为php数组格式
$sphinx->SetArrayResult(true);
//匹配结果的偏移量,参数的意义依次为:起始位置,返回结果条数,最大匹配条数
$sphinx->SetLimits($stat_page, $page_size,1000);
//最大搜索时间
$sphinx->SetMaxQueryTime(10);
//执行简单的搜索,这个搜索将会查询所有字段的信息,要查询指定的字段请继续看下文
// $index = 'books,paper'; //索引源是配置文件中的 books 类,如果有多个索引源可使用,号隔开:'books,paper' 或者使用'*'号代表全部索引源
$result = $sphinx->query ($search_name, $search_type);
return $result;
}
    根据coreseek返回的table_id及各表的id值,然后重组数组获取mysql数据,进行前台模板渲染就不在这里描述
六、coreseek的启动、创建索引等操作
     启动
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf
    停止
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --stop
    建立索引
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all
    重建索引
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all --rotate

© 著作权归作者所有

共有 人打赏支持
webphp
粉丝 1
博文 92
码字总数 92338
作品 0
海淀
程序员
私信 提问
coreseek 安装出错 求解

我是安装在linux中的 用的是coreseek-3.2.14版本的 我在安装coreseek-3.2.14版本时,按照安装指南的CoreSeek快速安装: 步骤,到最后$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --...

vitou
2012/01/16
776
5
Debian安装 Sphinx 支持中文检索

原文转自:http://hi.baidu.com/chancey/blog/item/2184746432926dfbf6365436.html 一、编译先前条件 确认是否已经安装以下软件, 有些也许不是必须的, 但建议还是都装上。 apt-get install ...

红薯
2010/05/28
1K
1
discuz论坛配置开启Sphinx全文搜索

技术简介: Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些...

北海有鱼87
2017/10/30
0
0
mmseg 同义词/复合词自定义

Linux mmseg 同义词/复合分词处理: 其基本使用状况为: 词库包含:     南京西路、南京、西路 索引时:     文本中的“南京西路”会被同时索引为以上三者 查询时:     输入南京...

黑小子
2012/06/06
0
0
自己配的centos6服务器就要上架,有点怕,找大侠安慰

由于原来的win2003服务器做php环境,不太稳定下,所以要换回linux,硬着头皮购买了鸟哥私房菜的两本书:基础+服务器。砍了10多天,花了10牛9虎之力才安装完centos。 在高端的电脑里,I5 2300...

qycms_cn
2011/10/20
4.3K
26

没有更多内容

加载失败,请刷新页面

加载更多

Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
5
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
2
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
昨天
3
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
昨天
10
0

中国龙-扬科
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部