`
sharkl
  • 浏览: 40916 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类

中文搜索引擎coreseek安装测试

阅读更多

首先是安装过程,参见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
分享到:
评论
1 楼 isy 2012-04-19  
谢谢分享!

相关推荐

    sphinx+coreseek安装配置

    Sphinx和CoreSeek是两种强大的全文搜索引擎技术,尤其在处理大量数据的检索和高效率搜索时表现卓越。它们常被用于网站、数据库和其他需要快速、精确搜索功能的应用中。本文将详细介绍如何在Linux环境中安装和配置...

    基于Sphinx 0.9.8 开发的中文全文搜索引擎Coreseek

    基于Sphinx 0.9.8 开发 支持Mysql全文搜索,支持PHP开发。 新增如下特性: 修正 2.5.x 系列searchd可能崩溃的Bug 改进 高亮的算法,支持词权重自定义 改进 切分算法,支持必须...仅供有经验的用户使用、测试。

    CoreSeek安装注意事项

    在进行CoreSeek搜索引擎的安装过程中,往往会遇到各种各样的问题,这些问题可能涉及到环境配置、依赖库安装、编译错误等。本文档根据实际安装经验,并结合网络上的参考资料,总结了一套完整的安装指南,旨在帮助用户...

    centos 6.5安装coreseek,亲测ok

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

    coreseek站内搜索

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

    coreseek3.1.14

    这有助于用户和开发者验证安装是否正确,以及搜索引擎性能的基准测试。 4. **分词技术**:CoreSeek采用了mmseg作为默认的中文分词引擎,支持多种分词算法,如最大匹配法、最少切分法等,确保了对中文文本的精确处理...

    coreseek-3.2.14-win32

    "coreseek-3.2.14-win32" 是一个针对Windows平台的中文全文搜索引擎软件,它是基于开源项目Sphinx的扩展版本。Sphinx是一款强大的、高性能的信息检索服务系统,常用于构建高效的搜索功能。在处理英文文本时,Sphinx...

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

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

    最新版sphinx coreseek 4.1 win32

    Sphinx CoreSeek 4.1 是一款针对中文的全文搜索引擎,专为Windows 32位系统设计的最新版本。这个工具提供了高效、精准的搜索功能,适用于网站、数据库和其他需要快速检索大量文本信息的场景。它结合了Sphinx搜索引擎...

    sphinx 的安装及使用 windws centos coreseek

    总之,Sphinx是一个强大的全文搜索引擎,其安装和配置涉及到多个步骤,包括选择合适的分词器(对于中文数据至关重要),设置数据源,创建和维护索引,以及开发搜索接口。在Windows和Linux环境下,这些过程可能会有所...

    coreseek搜索服务1

    Coreseek是一款开源的全文搜索引擎服务器,它基于Sphinx技术,为中文环境提供了强大的信息检索支持。Sphinx最初是为俄语开发的,但随着时间的发展,它已经演变为一个支持多语言的全文索引引擎,而Coreseek则为中文...

    coreseek-4.1-win32

    CoreSeek-4.1-win32是一个专为Windows平台设计的搜索引擎系统,它是Sphinx开源搜索引擎的一个增强版本,尤其在处理中文分词方面表现出色。Sphinx最初是为全文搜索而开发的,但随着发展,它已经扩展到支持多种语言和...

    centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    8. **测试安装**: - 运行CoreSeek的测试脚本来验证安装是否成功。 - 使用indexer和search工具来建立索引和进行搜索,确保中文能够被正确索引和搜索。 9. **解决可能出现的问题**:在安装过程中可能会遇到各种...

    coreseek41-windows.zip

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

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

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

    coreseek-4.1

    CoreSeek是一款开源的全文搜索引擎技术,它为中文信息检索提供了强大的支持。该软件的主要功能是构建和管理全文索引,以便高效地进行数据检索。在本案例中,我们讨论的是CoreSeek的4.1版本,特别针对Windows 32位...

    coreseek-3.2.14.tar.gz

    CoreSeek是一款基于全文搜索引擎技术的信息检索系统,专为中国语言环境设计。它主要提供了一个高性能、高可用性的中文全文检索解决方案,适用于大型网站和企业级应用。CoreSeek 3.2.14是该软件的一个稳定版本,意味...

    coreseek-4.1-win32.zip

    总的来说,CoreSeek 4.1是一个功能强大的全文搜索引擎,尤其适合中文环境,适用于各种需要高效信息检索的场景,如网站搜索、内部知识库、数据分析等。通过合理的配置和使用,可以极大地提升数据检索的效率和准确性。

    Coreseek在ubuntu系统上补丁

    Coreseek是一款基于全文搜索引擎Sphinx进行二次开发的开源软件,主要在中国大陆地区广泛使用,尤其在网站搜索和大数据处理方面。它提供了丰富的中文处理支持,包括分词、拼音转换等功能,使得在处理中文数据时更加...

Global site tag (gtag.js) - Google Analytics