Coreseek 全文搜索工具配置及使用

发布于 2018-07-09 21:12:31 字数 4920 浏览 1922 评论 0

Coreseek 是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的中文全文搜索能力。Coreseek 可以非常容易的与 SQL 数据库和脚本语言集成。基于 Sphinx 搜索工具编写的中文全文搜索引擎,适用于 Windows / Linux / FreeBSD 等多个平台。

注意:Coreseek 目前已经没有任何团队维护了,官网已经失效,也就是说后期如果有什么问题是得不到任何帮助的,只能阅读留下来的 API 文档自己解决,文章末尾附加了一些资源和文件。

主要特性

  • indexer: 用于创建全文索引;
  • search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引;
  • searchd: 一个守护进程,其他软件可以通过这个守护进程进行全文检索;
  • sphinxapi: 一系列 searchd 的客户端 API  库,用于流行的 Web 脚本开发语言(PHP, Python, Perl, Ruby, Java).
  • spelldump: 一个简单的命令行工具,用于从 ispell 或 MySpell (OpenOffice内置绑定) 格式的字典中提取词条。当使用 wordforms 时可用这些词条对索引进行定制.
  • indextool: 工具程序,用来转储关于索引的多项调试信息。 此工具是从版本 Coreseek 3.1(Sphinx 0.9.9-rc2) 开始加入的。
  • mmseg: 工具程序和库,Coreseek用于提供中文分词和词典处理。

主要用途

为您的应用实施全文检索,您可以:

  • 帮助用户找到您业务中,目前通过全网搜索找不到的80%的信息;
  • 可以保证自己信息的私密性,这在公司组织中尤其重要;
  • 降低服务器的运行负载,提高系统响应速度,从而大幅度降低您的运营成本;
  • 为您的需求修改检索结果的展现方式,更好的组织数据;
  • 帮助您发现用户提交的敏感文档或广告。

安装配置

1、下载 Coreseek 并将名字命名为 coreseek,找到 coreseek/etc/csft_mysql.conf,把文件 csft_mysql.conf 配置成如下:

#源定义
source magnet{
    type                    = mysql

    sql_host                = localhost
    sql_user                = root
    sql_pass                = root
    sql_db                  = magnet
    sql_port                = 3306
    sql_query_pre           = SET NAMES utf8

	sql_query               =SELECT id, creation_date, name as title, (SELECT GROUP_CONCAT(file.file SEPARATOR ',') FROM file, magnet_file WHERE file.id = magnet_file.file_id and magnet_file.magnet_id = magnet.id) as content, '1' as data_type FROM magnet
    sql_attr_uint            = data_type
    sql_attr_timestamp       = creation_date
    sql_query_info_pre       = SET NAMES utf8
    sql_query_info           = SELECT * FROM magnet WHERE id = $id
}

#index定义
index magnet{
    source          = magnet
    path            = D:/Dpan/coreseek/var/magnet
    docinfo         = extern
    mlock           = 0
    morphology      = none
    min_word_len    = 1
    html_strip      = 0

    charset_dictpath = D:/Dpan/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 = D:/Dpan/coreseek/var/log/searchd_mysql.pid
    log = D:\Dpan/coreseek/var/log/searchd_mysql.log
    query_log = D:/Dpan/coreseek/var/log/query_mysql.log
}

上面的目录你可以根据自己的具体目录地址修改。

2、安装 searchd 服务,打开 cmd 命令窗口并执行下面命令:

D:\Dpan\coreseek\bin\searchd.exe --install --config D:/Dpan/coreseek/etc/csft_mysql.conf

csft_mysql.conf 就是刚刚我们的配置文件,将 searchd 安装成为一个服务,安装成功后命令行窗口会提示 services searchd installed successfully。

3、建立索引

D:\Dpan\coreseek\bin\indexer -c D:\Dpan\coreseek\etc\csft_mysql.conf --all

csft_mysql.conf 就是刚刚我们的配置文件。

4、在 PHP 中使用 coreseek 搜索,在 API 目录下面有很多的使用例子,各个语言都可以调用 coreseek  的搜索,这里以 PHP 为例。

require ( "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);

相关资源

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文