首先是安装过程,参见coreseek官网安装过程:
http://www.coreseek.cn/products-install/install_on_windows/
其中第三项: http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.13-win32.zip可以直接下载解压即可,无需安装,也无需安装其他扩展包。
安装好后接下来需要配置,我以mysql为例,假设我mysql的用户名为root,密码为samyou,需要建立索引的数据库为test数据库的表userinfo。
到coreseek安装目录下:..\coreseek-3.2.13-win32\etc找到配置文件csft_mysql.conf(默认的配置文件csft.conf是针对xml数据源,这里我们使用mysql数据源),将该配置文件做如下修改:
#源定义
source mysql
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = samyou
sql_db = test
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, name,tel,email,duty FROM userinfo
#sql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint = id #从SQL读取到的值必须为整数
sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性
sql_query_info = SELECT * FROM userinfo WHERE id=$id #命令行查询时,从数据库读取原始数据信息
}
#index定义
index mysql
{
source = mysql #对应的source名称
path = var/data/mysql
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾
charset_dictpath = D:\coreseekthings\coreseek\coreseek-3.2.13-win32\etc/ #Windows环境下设置,/符号结尾,注意这里需要用绝对路径
charset_type = zh_cn.utf-8
ngram_len = 0
}
#全局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
log = var/log/searchd_mysql.log
query_log = var/log/query_mysql.log
}
以上红色字体部分为所作的修改的地方,修改完成后保存配置文件。
完成配置后可以在windows的cmd命令行窗口中进行测试,具体可以按照http://www.coreseek.cn/products/products-install/install_on_windows/中的方法进行,但注意将其中的
csft.conf修改为我们使用的csft_mysql.conf文件,例如测试关键字时使用命令bin\search -c etc\csft_mysql.conf -a 关键字1 关键字2 ...
另外,cmd窗口中不支持utf8,所以不能在此窗口中测试中文(明天试试在java中测试中文)
ps:coreseek因为是通过对索引检索来提高检索效率,所以在配置好数据源后需要首先建立所以表,测试中的bin\indexer -c etc\csft_mysql.conf --all语句就是针对数据源建立索引表
我们从java里来用这个东西。
首先从目录下打开服务,cmd窗口到coreseek的安装目录,运行bin\searchd -c etc\csft_mysql.conf启动服务。
到该目录下的\coreseek-3.2.13-win32\api\java文件夹下运行mk.cmd得到java接口包,再运行mkdoc.cmd得到java接口文档,然后将该生成的jar包引入java工程即可。
下面是哥借鉴的并调试通过的代码:
public class CoreSeekMain
{
/**
* @param args
*/
public static void main(String[] args)
{
StringBuffer q = new StringBuffer();
String host = "localhost";
int port = 9312; //从配置文件中得到
int mode = SphinxClient.SPH_MATCH_EXTENDED;
String index = "*";
int offset = 0;
int limit = 50;
SphinxClient cl = new SphinxClient();
q.append("samyou090");
//设置sphinx 服务端,和端口
try
{
cl.SetServer ( host, port );
cl.SetWeights ( new int[] { 100, 1 } );
//设置查询模式
cl.SetMatchMode ( mode );
//取20条
cl.SetLimits ( offset, limit );
SphinxResult res = cl.Query(q.toString(), index);
if ( res==null )
{
System.err.println ( "Error: " + cl.GetLastError() );
System.exit ( 1 );
}
if ( cl.GetLastWarning()!=null && cl.GetLastWarning().length()>0 )
System.out.println ( "WARNING: " + cl.GetLastWarning() + "\n" );
/* print out result*/
System.out.println ( "Query '" + q + "' retrieved " + res.total + " of " + res.totalFound + " matches in " + res.time + " sec." );
System.out.println ( "Query stats:" );
for ( int i=0; i<res.words.length; i++ )
{
SphinxWordInfo wordInfo = res.words[i];
System.out.println ( "\t" + wordInfo.word + "' found " + wordInfo.hits + " times in " + wordInfo.docs + " documents" );
}
/*print out matches*/
System.out.println ( "\nMatches: "+res.matches.length );
for ( int i=0; i<res.matches.length; i++ )
{
SphinxMatch info = res.matches[i];
System.out.print ( (i+1) + ". id=" + info.docId + ", weight=" + info.weight );
if ( res.attrNames==null || res.attrTypes==null )
continue;
for ( int a=0; a<res.attrNames.length; a++ )
{
System.out.print ( ", " + res.attrNames[a] + "=" );
if ( ( res.attrTypes[a] & SphinxClient.SPH_ATTR_MULTI )!=0 )
{
System.out.print ( "(" );
long[] attrM = (long[]) info.attrValues.get(a);
if ( attrM!=null )
for ( int j=0; j<attrM.length; j++ )
{
if ( j!=0 )
System.out.print ( "," );
System.out.print ( attrM[j] );
}
System.out.print ( ")" );
} else
{
switch ( res.attrTypes[a] )
{
case SphinxClient.SPH_ATTR_INTEGER:
case SphinxClient.SPH_ATTR_ORDINAL:
case SphinxClient.SPH_ATTR_FLOAT:
case SphinxClient.SPH_ATTR_BIGINT:
/* longs or floats; print as is */
System.out.print ( info.attrValues.get(a) );
break;
case SphinxClient.SPH_ATTR_TIMESTAMP:
Long iStamp = (Long) info.attrValues.get(a);
Date date = new Date ( iStamp.longValue()*1000 );
System.out.print ( date.toString() );
break;
default:
System.out.print ( "(unknown-attr-type=" + res.attrTypes[a] + ")" );
}
}
}
System.out.println();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
- 大小: 53.8 KB
分享到:
相关推荐
Sphinx和CoreSeek是两种强大的全文搜索引擎技术,尤其在处理大量数据的检索和高效率搜索时表现卓越。它们常被用于网站、数据库和其他需要快速、精确搜索功能的应用中。本文将详细介绍如何在Linux环境中安装和配置...
基于Sphinx 0.9.8 开发 支持Mysql全文搜索,支持PHP开发。 新增如下特性: 修正 2.5.x 系列searchd可能崩溃的Bug 改进 高亮的算法,支持词权重自定义 改进 切分算法,支持必须...仅供有经验的用户使用、测试。
在进行CoreSeek搜索引擎的安装过程中,往往会遇到各种各样的问题,这些问题可能涉及到环境配置、依赖库安装、编译错误等。本文档根据实际安装经验,并结合网络上的参考资料,总结了一套完整的安装指南,旨在帮助用户...
在本文中,我们将深入探讨如何在CentOS 6.5操作系统上成功安装CoreSeek,一个基于Sphinx搜索引擎的全文检索引擎。CoreSeek以其高度可定制性、高效性能和丰富的功能特性,广泛应用于各类数据检索场景。 一、CoreSeek...
CoreSeek站内搜索是一款强大的开源搜索引擎,专为中文环境设计,提供高效、可扩展的全文检索功能。它结合了Sphinx搜索引擎的特性,并且支持与MySQL数据库紧密集成,使得数据检索和管理变得更加便捷。在本篇文章中,...
这有助于用户和开发者验证安装是否正确,以及搜索引擎性能的基准测试。 4. **分词技术**:CoreSeek采用了mmseg作为默认的中文分词引擎,支持多种分词算法,如最大匹配法、最少切分法等,确保了对中文文本的精确处理...
"coreseek-3.2.14-win32" 是一个针对Windows平台的中文全文搜索引擎软件,它是基于开源项目Sphinx的扩展版本。Sphinx是一款强大的、高性能的信息检索服务系统,常用于构建高效的搜索功能。在处理英文文本时,Sphinx...
Coreseek是一款基于Sphinx搜索引擎的中文分词系统,它提供了强大的全文检索功能,广泛应用于各种数据索引和搜索场景。本文将详细介绍如何在Linux环境下编译安装Coreseek 4.1版本,并进行实时索引的配置。 首先,...
Sphinx CoreSeek 4.1 是一款针对中文的全文搜索引擎,专为Windows 32位系统设计的最新版本。这个工具提供了高效、精准的搜索功能,适用于网站、数据库和其他需要快速检索大量文本信息的场景。它结合了Sphinx搜索引擎...
总之,Sphinx是一个强大的全文搜索引擎,其安装和配置涉及到多个步骤,包括选择合适的分词器(对于中文数据至关重要),设置数据源,创建和维护索引,以及开发搜索接口。在Windows和Linux环境下,这些过程可能会有所...
Coreseek是一款开源的全文搜索引擎服务器,它基于Sphinx技术,为中文环境提供了强大的信息检索支持。Sphinx最初是为俄语开发的,但随着时间的发展,它已经演变为一个支持多语言的全文索引引擎,而Coreseek则为中文...
CoreSeek-4.1-win32是一个专为Windows平台设计的搜索引擎系统,它是Sphinx开源搜索引擎的一个增强版本,尤其在处理中文分词方面表现出色。Sphinx最初是为全文搜索而开发的,但随着发展,它已经扩展到支持多种语言和...
8. **测试安装**: - 运行CoreSeek的测试脚本来验证安装是否成功。 - 使用indexer和search工具来建立索引和进行搜索,确保中文能够被正确索引和搜索。 9. **解决可能出现的问题**:在安装过程中可能会遇到各种...
CoreSeek41-Windows是一个专为Windows平台设计的全文搜索引擎软件包,主要包含了Sphinx技术,用于高效、精准地处理中文分词和全文检索。Sphinx是一款开源的、高性能的全文检索引擎,最初由俄罗斯开发者开发,现在...
Coreseek是一款基于Sphinx搜索引擎的中文分词和全文检索解决方案,它在Sphinx的基础上增加了中文支持,使得在处理中文数据时能有更好的效果。这个压缩包"coreseek-3.2.14-.tar.gz"包含了Coreseek的源代码,允许用户...
CoreSeek是一款开源的全文搜索引擎技术,它为中文信息检索提供了强大的支持。该软件的主要功能是构建和管理全文索引,以便高效地进行数据检索。在本案例中,我们讨论的是CoreSeek的4.1版本,特别针对Windows 32位...
CoreSeek是一款基于全文搜索引擎技术的信息检索系统,专为中国语言环境设计。它主要提供了一个高性能、高可用性的中文全文检索解决方案,适用于大型网站和企业级应用。CoreSeek 3.2.14是该软件的一个稳定版本,意味...
总的来说,CoreSeek 4.1是一个功能强大的全文搜索引擎,尤其适合中文环境,适用于各种需要高效信息检索的场景,如网站搜索、内部知识库、数据分析等。通过合理的配置和使用,可以极大地提升数据检索的效率和准确性。
Coreseek是一款基于全文搜索引擎Sphinx进行二次开发的开源软件,主要在中国大陆地区广泛使用,尤其在网站搜索和大数据处理方面。它提供了丰富的中文处理支持,包括分词、拼音转换等功能,使得在处理中文数据时更加...