让coreseek支持拼音检索

129 篇文章 0 订阅
26 篇文章 0 订阅
一、介绍:

        Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景。我们不仅可以免费下载使用,也可以对其提供的源代码进行修改,使其更符合我们的搜索要求。coreseek官网:www.coreseek.cn/。

二、不足之处:

        coreseek有一点不足之处就是它不支持拼音索引。在现实项目中,特别是人名、地名,需要用到全拼或者简拼检索,比如我想搜:中华人民共和国,若能输入zhrmghg,或者输入zhonghuarenmingongheguo,或者只需要输入这两个字符的前缀,就能获得该结果。

三、改进思路:

        指定需要拼音索引的字段,在建立索引时首先将数据转化成拼音(全拼和简拼),然后将拼音加入索引字段中对其进行索引。

四、难点:

        源码的编译(http://blog.csdn.net/kangrydotnet/article/details/9971175)、多编码的汉字转化成拼音(http://blog.csdn.net/kangrydotnet/article/details/10819815

五、使用方法:

        经过近两个月的分析与修改,终于功夫不负有心人,coreseek的拼音检索终于基本上实现了。

        1、在配置文件中的源块中,指定要拼音检索的字段。若要对title进行拼音检索,则:

        sql_pinyin_jianpin = title //对title进行简拼索引

        sql_pinyin_quanpin = title //对title进行全拼索引

        sql_pinyin = title     //对title既进行简拼索引,也进行全拼索引

        注意,拼音索引不能与其他属性重复,即若指定了sql_attr_string = title,则不可指定sql_pinyin=title。这是原来coreseek就必须遵守的规则。指定的拼音索引字段,同时也会索引原来的字段。

        2、在索引块中指定min_prefix_len的长度。该长度必须大于等于1。因为拼音索引目前就是一个前缀索引。

        3、在索引块中还可以指定要多音字支持的字段。pinyin_poly_fields=title,name,...

六、目前程序的不足:

        1、在控制台上,search搜索不能转码,不知道是什么原因。

        2、拼音索引可能需要中缀索引。目前尚不支持。

        3、目前只是测试了MySQL数据源的,其他数据源未进行测试(若其他数据源有是否可用的消息,请留言告知)。

        4、目前只编译了windows版本,linux版本正在尝试编译。

        5、拼音可能会有误。这里用到了网上的拼音转换程序,转换表可能会有问题。若发现哪些字不对,欢迎留言告知。

        6、目前还未进行大数据量的测试,可能会有隐藏bug。

        7、gb2312编码的多音字暂不支持,正在努力寻找多音字转换表。

七、下载:

      win32(1版,2013-09-01):http://download.csdn.net/detail/wangshaner1/6192947

      win64(2版,2013-09-03,支持utf8字节多音字问题,解决了一个内存泄露bug):http://download.csdn.net/detail/wangshaner1/6202993

      win64(3版,2013-09-19,较第二版的改进有:改正拼音转换过程中的一个bug,解决了不能建立停止词的bug,将转换后的拼音从属性中删除了,以减少索引空间,解决了一个拼音内存泄露问题):http://download.csdn.net/detail/wangshaner1/6289901。性能测试结果:http://blog.csdn.net/kangrydotnet/article/details/11828441

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值