coreseek

  1. 云栖社区>
  2. 博客>
  3. 正文

coreseek

长征2号 2017-08-04 14:08:00 浏览987
展开阅读全文

coreseek

该词条缺少基本信息栏词条分类,补充相关内容帮助词条更加完善!立刻编辑>>

 

Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,可以免费下载使用。

 

 

1什么是CoreSeek

Coreseek 是一个可供企业使用的、基于Sphinx(可独立于Sphinx原始版本运行)的中文全文检索引擎,按照GPLv2协议发行。商业使用(例如, 嵌入到其他程序中)需要获得商业授权。

Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek可以非常容易的与SQL数据库和脚本语言集成。

应用程序可以通过三种不同的接口方式来与Sphinx搜索服务(searchd)通信:a) 通过原生的搜索 API (SphinxAPI),b) 通过Sphinx自身支持的MySQL网络协议 (使用命名为SphinxQL的SQL精简子集), 或者 c) 通过MySQL 服务端的存储插件引擎(SphinxSE)。当然, 还可以通过可以使用 a)、b)、c) 的应用程序来构建webservice来为其他应用程序提供通信

在Sphinx发行版本中提供的原生搜索API支持PHP、Python、Perl、Rudy和Java。搜索API非常轻量化,可以在几个小时之内移植到新的语言上。第三方API接口和插件提供了对Perl、C#、Haskell、Ruby-on-Rails支持,以及对其他可能的语言或者框架的支持。

从版本1.10-beta开始,Sphinx支持两种不同的索引后端:“磁盘(disk)”索引后端和“实时索引(realtime)”(RT)索引后端。磁盘索引支持在线全文索引重建,但是仅支持非文本(属性)数据的在线更新。RT实时索引在此基础上,又增加了在线的全文索引更新。在此之前的版本仅支持磁盘索引。

使用命名为数据源的接口,数据可以被加载到磁盘索引。当前系统内置MySQL和PostgreSQL以及ODBC兼容(MS SQL、Oracle等) 数据库数据源的支持,也支持从管道标准输入读取特定格式的XML数据。通过适当修改源代码,用户可以自行增加新的数据源驱动(例如:对其他类型的DBMS的原生支持)。在Coreseek发行的版本中,用户还可以使用Python脚本作为数据源来获取任何已知世界和未知世界的数据,这极大的扩展了数据源的来源。从1.10-beta版本开始的RT实时索引,只能使用MySQL接口通过SphinxQL来操作。

Sphinx 是SQL Phrase Index的缩写,但不幸的和CMU的Sphinx项目重名。

CoreSeek的特性

索引和搜索性能优异;

先进的索引和查询工具 (灵活且功能丰富的文本分析器,查询语言,以及多种不同的排序方式等等);

先进的结果集分析处理 (SELECT 可以使用表达式, WHERE, ORDER BY, GROUP BY 等对全文搜索结果集进行过滤);

实践证实可扩展性支持数十亿文档记录,TB级别的数据,以及每秒数千次查询;

易于集成SQL和XML数据源,并可使用SphinxAPI、SphinxQL或者SphinxSE搜索接口

易于通过分布式搜索进行扩展

高速的索引建立(在当代CPU上,峰值性能可达到10 ~ 15MB/秒);

高性能的搜索 (在1.2G文本,100万条文档上进行搜索,支持高达每秒150~250次查询);

高扩展性 (最大的索引集群超过30亿条文档,最繁忙时刻的查询峰值达到每天5千万次);

提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;

支持分布式搜索功能;

提供文档片段(摘要以及高亮)生成功能;

内建支持SphinxAPI和SphinxQL搜索箭口,也可作为MySQL的存储引擎提供搜索服务;

支持布尔、短语、词语相似度等多种检索模式;

文档支持多个全文检索字段(缺省配置下,最大不超过32个);

文档支持多个额外的属性信息(例如:分组信息,时间戳等);

支持查询停止词;

支持词形学处理;

支持特殊词汇处理;

支持单一字节编码和UTF-8编码;

内建支持英语、俄语、捷克语词干化处理; 对法语,西班牙语,葡萄牙语,意大利语,罗马尼亚语,德国,荷兰,瑞典,挪威,丹麦,芬兰,匈牙利等语言的支持可通过第三方的 libstemmer 库 建立);

原生的MySQL支持(同时支持MyISAM 、InnoDB、NDB、Archive等所有类型的数据表 );

原生的PostgreSQL 支持;

原生的ODBC兼容数据库支持 (MS SQL, Oracle, 等) ;

如何得到CoreSeek

Coreseek可以从Coreseek官方网站下载。

目前,CoreSeek的发布包包括如下软件:

indexer: 用于创建全文索引;

search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引;

searchd: 一个守护进程,其他软件(例如WEB程序)可以通过这个守护进程进行全文检索;

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用于提供中文分词和词典处理。

CoreSeek的安装

coreseek安装需要预装的软件:apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev

##下载coreseek:coreseek 3.2.14

$ wget 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

##安装mmseg

$ cd mmseg-3.2.14

$ ./bootstrap

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

$ make && make install

$ cd ..

##安装coreseek

$ cd 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

$ make && make install

$ cd ..

##测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文)

$ cd testpack

$ cat var/test/test.xml

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

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

$ /usr/local/coreseek/bin/search -c etc/csft.conf

##建立索引

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all

##开启searchd服务

/usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/sphinx.conf

 

 

 

 

 

 

 

扩展阅读:

3.

coreseek(sphinx)中文分词之前缀索引,中缀索引和同义词及

http://www.taoyutaole.com/thread-2152-1-1.html

 

 

词条标签:





本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/4097557.html,如需转载请自行联系原作者。

网友评论

登录后评论
0/500
评论
长征2号
+ 关注