在小型 Rails 项目中不借助 Elasticsearch 等专业的第三方搜索引擎,只使用 pg_search 进行全文检索其实是能够满足一般应用场景的。
但是由于 postgresql 默认不支持中文分词的功能,所以需要额外为数据库配置一个中文分词的扩展。一个比较简单的中文分词的方案是采用 scws+ 中文字典库+zhparser 组合。另外,在 pg_search 调用时,需要指定在数据库设置的中文检索配置。除此以外就没有什么特别之处了。
详细的安装过程请参照: PostgreSQL + SCWS + zhparser + Rails4 + pg_search 实现中文全文检索
在线演示:Full-text Searching Demo [Chinese/English/Japanese]
注:不管是 Rails 还是 Github,我都是初学者,难免有错误,欢迎大家指正。例如我还是搞不定那个 application_helper 里面的 link_activate 方法。如果项目不是放在子目录的话,就没问题,现在布置到子目录里面,菜单链接就没法显示 active 了。