Gem thinking-sphinx 的一个小坑吗?

small_fish__ · 2013年12月31日 · 最后由 small_fish__ 回复于 2013年12月31日 · 2831 次阅读

项目一直用 sphinx 做全文搜索,这次也不例外,只不过将 thinking-sphinx 的版本换到了 3.x,不过话说 3.x 和 2.x 的改变还有点大哦。具体请参见https://github.com/pat/thinking-sphinx/blob/master/README.textile#usage

小坑如下:

关于 thinking-sphinx 的配置文件,文档上如是说在 config 目录下,新建一个叫做 thinking-sphinx.yml 或者 sphinx.yml 的文件。由于其他项目使用 2.x 的版本的配置文件一直叫的 sphinx.yml,所以这次也不例外。

很快配置搞定后,就开始测试起来,创建索引,搜索,一切都很好,有点小小 happy, 搞了一杯咖啡,喝着。

然后测试模糊查询的时候,居然不支持了。自己惊讶了,然后开始检查,发现配置文件中是有enable_star: true这一句的。无赖然后从 log 看起 没发现报错和异常,开始 gg,也没有找到相关提示,无奈的结束了一天的工作。

今天早上一来,先看把文档再从头看了一遍,还是没有发现什么好的提示,最后实在没办法,翻出源码看一下,结果一下看到这一句 https://github.com/pat/thinking-sphinx/blob/master/lib/thinking_sphinx/configuration.rb#L129 ,心里一惊,感叹到“不会吧”。。。然后开始 将 config/sphinx.yml 删掉,然后重新创建索引。。重新测试,发现和没有删除的是一样的结果。

丫的,这不是 sphinx 的配置文件根本没有起作用吗,然后将 config/sphinx.yml 修改为 config/thinking-sphinx.yml,rebuild 过后,就 ok。。

看到这样的结果好无语,浪费了这么多时间。。。

总结:

  1. 遇到问题,看源码是个好办法。
  2. 解决问题的思路很重要。
  3. 经验有时不靠谱。
  4. 不仔细看文档是不好的(尤其是大版本的变化)

就是不看文档的问题 http://pat.github.io/thinking-sphinx/upgrading.html

config/sphinx.yml is now config/thinking_sphinx.yml.

了解一下 Semantic Versioning,大版本变了说明有东西不兼容。

#1 楼 @Rei 谢谢,现在看到了,当时直接定位代码去了,,我其实将这句话理解错了。。 Everything inside the block is just like previous versions of Thinking Sphinx. Same goes for most settings in config/thinking_sphinx.yml (formerly config/sphinx.yml) unless noted below.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号