`
hongtoushizi
  • 浏览: 376565 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

CoreSeek Mysql 安装与测试 For Mac OS X(中文分词与中文全文检索)

阅读更多
 

    CoreSeek安装比较麻烦,官方手册对此的支持并不算很好。CoreSeek是基于Sphinx的中文的分词和全文检索软件。本文是在MAC OS X系统下安装和调试CoreSeek。

    安装过程中报错如果是警告warning则忽略,如果是错误error,则必须要处理。

    CoreSeek是支持三种数据来源的,一种是众所周知的Mysql,一种是XML文件,另一种是Python。而Python则是万能数据类型。在本CoreSeek安装测试教程中只示例数据源是XML文件和MYSQL。

 

    官方手册地址:http://www.coreseek.cn/products-install/install_on_macosx

 

    一、设置环境变量

 


 

$ export PATH=/usr/local/bin:$PATH

$ export LC_ALL=zh_CN.UTF-8

$ export.UTF-8

 

 

    二、安装依赖库:m4、autoconf、automake、libtool。

注意:不要brew install 来安装,因为对安装的库的版本有要求。

 

 

$ curl -O -L http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz

$ tar -xzvf m4-1.4.13.tar.gz

$ cd m4-1.4.13

$ sudo ./configure --prefix=/usr/local/opt

$ sudo make

$ sudo make install

$ cd ..

 

$ curl -O -L http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz

$ tar -xzvf autoconf-2.65.tar.gz

$ cd autoconf-2.65

$ sudo ./configure --prefix=/usr/local/opt

$ sudo make

$ sudo make install

$ cd ..

 

$ curl -O -L http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz

$ tar xzvf automake-1.11.tar.gz

$ cd automake-1.11

$ ./configure --prefix=/usr/local/opt

$ sudo make

$ sudo make install

$ cd ..

 

$ curl -O -L http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz

$ tar xzvf libtool-2.2.6b.tar.gz

$ cd libtool-2.2.6b

$ sudo ./configure --prefix=/usr/local/opt

$ sudo make

$ sudo make install

$ cd ..

 

 

    三、安装Mysql。

1、mysql 的安装自行安装

2、查找mysql头文件地址和库文件地址。我用

 

 

brew install mysql

 

安装的Mysql,头文件地址和库文件地址分别是/usr/local/Cellar/mysql/5.6.17_1/include/mysql 和 /usr/local/Cellar/mysql/5.6.17_1/lib。

头文件地址就是mysql.h所在的目录,库文件地址就是libmysqlclient.a所在的目录。

 

    四、下载Coreseek。

 

 

$ curl -O -L 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

 

在coreseek-3.2.14文件夹下有mmseg和csft和testpack。mmseg是分词服务,csft是CoreSeek的核心服务,testpack是测试用例。

 

    五、安装mmseg

 

 

$ cd mmseg-3.2.14

$ sudo ./bootstrap

$ sudo ./configure --prefix=/usr/local/opt/mmseg3

$ sudo make

$ sudo make install

$ cd ..

 

在make的时候,可能会报错,如下

file included from css/ThesaurusDict.cpp:6:

../src/css/ThesaurusDict.h:12:17: error: expected namespace name

using namespace __gnu_cxx;

^

css/ThesaurusDict.cpp:79:15: warning: result of comparison against a string

literal is unspecified (use strncmp instead) [-Wstring-compare]

if (filename == "-") {

    ^ ~~~

    css/ThesaurusDict.cpp:116:15: warning: result of comparison against a string

literal is unspecified (use strncmp instead) [-Wstring-compare]

if (filename != "-") {

    ^ ~~~

    2 warnings and 1 error generated.

    make[2] : *** [ThesaurusDict.lo] Error 1

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

 

这个时候make进程已经终止。原因是因为编译器版本太高导致的,修改方法:1是降低编译器版本,反正我打死也不愿意。方法2如下:

 

 

vim src/css/ThesaurusDict.h

###在头部找到:#include <string>

###再其下加入一行代码:

#include <ext/hash_map>

 

修改完后保存退出,继续重新sudo make一下,就没有error级错误了,然后sudo make install即可。

 

    六、安装coreseek

 

 

$ cd csft-3.2.14

$ sudo sh buildconf.sh

$ sudo ./configure --prefix=/usr/local/opt/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/opt/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/opt/mmseg3/lib/ --with-mysql --with-mysql-includes=/usr/local/Cellar/mysql/5.6.17_1/include/mysql --with-mysql-libs=/usr/local/Cellar/mysql/5.6.17_1/lib

$ sudo make

$ sudo make install

$ cd ..

 

在./configure时,参数--with-mysql-includes是mysql头文件位置,--with-mysql-libs是mysql库文件位置,请在本CoreSeek安装教程第三步所记录的mysql头文件地址和库文件地址,替换。

 

在make时,可能又会出现error级的错误,如果出现make程序是停止运行的,必须要修改。错误提示如下:

phinxexpr.cpp:1047:11: error: use of undeclared identifier 'ExprEval'

T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc ...

 

解决方法:修改源代码。

 

 

vim src/sphinxexpr.cpp

 

将T val = ExprEval( this->m_pArg, tMatch )替换为T val = this->ExprEval ( this->m_pArg, tMatch )。

就是加了个“this->”,是把这个文件中所有的ExprEval()函数都修改了,有三四个吧。

修改后保存退出,重新sudo make,然后sudo make install即可。

 

    七、测试XML数据

 

 

$ cd testpack

 

#测试编码是否正确显示中文,如果不是中文则请看本CoreSeek安装测试教程第一步

$ cat var/test/test.xml

 

# 测试mmseg分词的效果

$ /usr/local/opt/mmseg3/bin/mmseg -d /usr/local/opt/mmseg3/etc var/test/test.xml 

 

# 建立检索的索引。

$ /usr/local/opt/coreseek/bin/indexer -c etc/csft.conf --all

 

#全文搜索“网络搜索”

$ /usr/local/opt/coreseek/bin/search -c etc/csft.conf 网络搜索

 

如果在建立检索的索引出错,FATAL: failed to lock var/data/xml.spl: Resource temporarily unavailable, will not index. Try --rotate option.

则修改为

 

 

$ /usr/local/opt/coreseek/bin/indexer -c etc/csft.conf --all --rotate

 

 

 

    八、测试MYSQL数据源

 

 

cd testpack

 

 

1、修改配置文件,文件位于testpack/etc/csft_mysql.conf

 

 

vim etc/csft_mysql.conf

 

我的csft_mysql.conf文件如下:记得把mysql 的sql_host,sql_user,sql_pass,sql_db,sql_port修改为自己的,并且把路劲都修改为你自己的路径。

 

 

#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/

#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库

 

#源定义

source mysql

{

    type                    = mysql

 

    sql_host                = localhost

    sql_user                = root

    sql_pass                = 8823150

    sql_db                    = test

    sql_port                = 3306

    sql_query_pre            = SET NAMES utf8

 

    sql_query                = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents

                                                              #sql_query第一列id需为整数

                                                              #title、content作为字符串/文本字段,被全文索引

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

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

 

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

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

}

 

#index定义

index mysql

{

    source            = mysql             #对应的source名称

    path            = /Users/lane/coreseek-3.2.14/testpack/var/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

    docinfo            = extern

    mlock            = 0

    morphology        = none

    min_word_len        = 1

    html_strip                = 0

 

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

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

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

    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 = /Users/lane/coreseek-3.2.14/testpack/var/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

    log = /Users/lane/coreseek-3.2.14/testpack/var/log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

    query_log = /Users/lane/coreseek-3.2.14/testpack/var/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

}

 

 

2、给mysql导入测试数据

    mysql的测试数据我们用的是test数据库,documents数据表。请自行确保test数据库存在,我们一起来建documents表,这个表的结构和数据都是由CoreSeek提供的,在testpack/var/test/documents.sql

 

 

mysql -u root -p

#输入密码

 

#看看,数据库test在不在

mysql > show databases; 

#如果test库不在请创建

mysql > create database test;

 

use test;

 

#导入数据

source /Users/lane/coreseek-3.2.14/testpack/var/test/documents.sql

 

 

3、测试:

 

 

$ cd testpack

 

# 建立检索的索引

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

 

#全文搜索“网络搜索”

$ /usr/local/opt/coreseek/bin/search -c etc/csft_mysql.conf 网络搜索

 

如果提示有错误,请检查csft_mysql.conf的路径、mysql的配置等信息是否正确。

 

 

    九、测试PHP+MYSQL

1、先启动服务

 

 

/usr/local/opt/coreseek/bin/searchd -c etc/csft.conf

 

2、PHP文件

 

 

<?php

require ( "/Users/lane/coreseek-3.2.14/testpack/api/sphinxapi.php" );

 

$cl = new SphinxClient ();

$cl->SetServer ( '127.0.0.1', 9312);

$cl->SetConnectTimeout ( 3 );

$cl->SetArrayResult ( true );

$cl->SetMatchMode ( SPH_MATCH_ANY);

$res = $cl->Query ( '网络搜索', "*" );

print_r($cl);

print_r($res);

 

 

 

我在Linux折腾了一天没有搞定,在MAC搞了半天搞定了。等搞定Linux后再发Linux的。

分享到:
评论

相关推荐

    Coreseek MySQL 数据源在 CentOS 下的安装

    本文档详细介绍了在 CentOS 系统下安装 Coreseek 并集成 MySQL 数据源的整个过程,包括环境准备、软件下载、解压缩、语言配置检查、安装 mmseg 分词工具、Coreseek 安装、配置测试以及 MySQL 数据源安装等关键步骤。...

    Coreseek 全文搜索服务器2.5

    **Coreseek 全文搜索服务器2.5**是一款基于开源全文搜索引擎Sphinx进行修改和增强的产品,它在原生Sphinx的基础上提供了更多的功能和优化,旨在为企业和开发者提供更高效、更灵活的全文检索解决方案。在GPL协议下,...

    sphinx+coreseek安装配置

    CoreSeek是基于Sphinx的中文分词和全文检索引擎,提供了中文支持和更丰富的功能。它包含了mmseg中文分词算法,能够更好地处理中文的搜索需求。 ### 3. 安装Sphinx 首先,确保系统已安装必要的依赖项,如`libxml2`...

    coreseek-4.1 x64 x86合集插件包.zip

    CoreSeek 4.1是CoreSeek项目的一个重要版本,它基于Sphinx 2.x,提供了一整套完善的中文分词和全文检索功能。此版本支持多种操作系统,包括Windows和Linux,并且兼容MySQL数据库。CoreSeek的出现,使得非技术人员也...

    centos 6.5安装coreseek,亲测ok

    在本文中,我们将深入探讨如何在CentOS 6.5操作系统上成功安装CoreSeek,一个基于Sphinx搜索引擎的全文检索引擎。CoreSeek以其高度可定制性、高效性能和丰富的功能特性,广泛应用于各类数据检索场景。 一、CoreSeek...

    coreseek安装

    4. **安装mmseg中文分词库**:编译和安装mmseg,它是Coreseek进行中文分词的关键组件。 5. **安装libsphinxclient**:此库是用于连接Sphinx搜索服务的必要组件。 6. **安装PHP Sphinx模块**:从PECL网站下载并编译...

    coreseek中文全文索引解决方案

    总的来说,CoreSeek作为一款强大的中文全文索引解决方案,不仅解决了中文分词难题,还通过与MySQL的集成,为各种需要高效搜索功能的应用提供了有力的后台支持。通过深入理解和合理应用,开发者可以构建出更高效、更...

    搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构

    ### 搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构 #### Sphinx快速介绍 Sphinx是一款高性能的全文搜索引擎,它独立于MySQL运行,但可以与MySQL配合使用来实现高效的全文检索功能。当Sphinx与MySQL...

    sphinx 中英文分词检索介绍

    ### Sphinx 中英文分词检索介绍 #### 一、Sphinx简介 Sphinx是一款高性能的全文检索引擎,能够显著提升在大型数据库中进行全文检索的速度。它最初由Andrew Aksyonoff设计并开发,旨在解决MySQL数据库在处理大量文本...

    coreseek-3.2.14-win32

    在部署CoreSeek时,你需要按照官方文档或教程进行操作,包括安装、配置、创建索引、连接数据库(通常与MySQL结合使用)以及测试搜索功能。此外,理解并掌握CoreSeek的配置参数和命令行工具是至关重要的,这能帮助你...

    coreseek41-windows.zip

    CoreSeek41-Windows是一个专为Windows平台设计的全文搜索引擎软件包,主要包含了Sphinx技术,用于高效、精准地处理中文分词和全文检索。Sphinx是一款开源的、高性能的全文检索引擎,最初由俄罗斯开发者开发,现在...

    coreseek4.1 for window

    CoreSeek4.1是专为Windows平台设计的一款高效、强大的全文检索搜索引擎,它基于开源项目Sphinx,并且针对中文环境进行了优化。Sphinx是一款广泛应用于网站、数据库等场景的实时搜索解决方案,以其高速、准确和易用性...

    coreseek站内搜索

    CoreSeek站内搜索是一款强大的开源搜索引擎,专为中文环境设计,提供高效、可扩展的全文检索功能。它结合了Sphinx搜索引擎的特性,并且支持与MySQL数据库紧密集成,使得数据检索和管理变得更加便捷。在本篇文章中,...

    基于Coreseek+Python的分布式全文检索方法.zip

    **基于Coreseek+Python的分布式全文检索方法** 在信息技术领域,全文检索是一种高效的数据搜索技术,它允许用户通过输入关键词来查找文档中的相关信息。Coreseek和Python是实现这种功能的两个重要工具。Coreseek是...

    Coreseek Fulltext Server (源码)

    Coreseek Fulltext Server 是一款开源的全文搜索引擎,专为中文环境设计,提供了强大的全文检索功能。这款服务器软件的源代码开放,允许开发者深入研究其内部机制,为自己的项目进行定制或优化。在搜索引擎领域,...

    coreseek4.1 编译安装和实时索引配置

    Coreseek是一款基于Sphinx搜索引擎的中文分词系统,它提供了强大的全文检索功能,广泛应用于各种数据索引和搜索场景。本文将详细介绍如何在Linux环境下编译安装Coreseek 4.1版本,并进行实时索引的配置。 首先,...

    coreseek的demo 20141224修改

    CoreSeek是中国开发的一款开源全文搜索服务器,它提供了丰富的中文分词支持,兼容Sphinx的API,使得开发者可以轻松地集成到现有系统中。CoreSeek的出现,极大地简化了中文网站和应用的全文搜索功能的实现,对于提升...

    官网不能下,这里可以下载coreseek-3.2.14-.tar.gz

    Coreseek是一款基于Sphinx搜索引擎的中文分词和全文检索解决方案,它在Sphinx的基础上增加了中文支持,使得在处理中文数据时能有更好的效果。这个压缩包"coreseek-3.2.14-.tar.gz"包含了Coreseek的源代码,允许用户...

    coreseek-4.1.tar.gz

    CoreSeek是中国的一款开源全文搜索引擎系统,它基于Sphinx搜索引擎进行了二次开发,增加了对中文的支持,提供了更方便的中文分词接口。在这个“coreseek-4.1.tar.gz”压缩包中,你找到了Linux版本的CoreSeek 4.1-...

Global site tag (gtag.js) - Google Analytics