Thinking-sphinx 的中文支持

一直以来项目中使用的都是ultrasphinx插件做为Sphinx的接口,效果也还不错,不过一直不太喜欢ultrasphinx索引的定义方式,怎么看怎么别扭(个人习惯), 相比之下还是看thinking-sphinx顺眼些.

thinking-sphinx自身是支持utf8, 不过打了中文补丁的Sphinx编码需要设置为zh_cn.utf8,但thinking-sphinx目前并没有自定义的扩展,所以就需要hack一下, 主要为中文检查添加了两个option:
[quote]charset_type: zh_cn.utf-8
charset_dictpath: dict/path[/quote]
使用时只需要在sphinx.yml里做相应设置即可.

hack后的插件地址为: http://github.com/raecoo/thinking-sphinx-chinese
为了支持中文对以下三个文件进行了hack,目前看起来即使升级新版本也应该不会有什么影响.
[quote]lib/thinking_sphinx/configuration.rb
vendor/riddle/lib/riddle/configuration/index.rb[/quote]
对以上两文件的修改主要是为了添加charset_dictpath这个自定义的变量,方便生成配置文件时使用

[quote]lib/thinking_sphinx/source.rb[/quote]
source.rb的utf8?方法是修改的重点,此方法仅对utf-8编码进行判断. 此方法的作用是为生成的sphinx配置文件中SQL语句部分关于编码设置的一条语句. 特别是针对中文此语句也是最为重要的一句,相信遇到过编码问题的人一看就明白
[quote]sql_query_pre = SET NAMES utf8[/quote]

共修改了三个文件, 添加的字符数也不到50个即可解决TS的中文检索.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值