这个功能已经有很多人提过需求了,之前一直碍于自己实现全文搜索太复杂,一堆的配置,使得环境安装变得困难,所以一直没弄。
此外自己实现的站内搜索功能由于没有足够的细节调优,搜索结果无法和 Google 的结果相比(包括目前上线的版本,只能说暂时够用了)
新的搜索功能背后是基于 Elasticsearch 来实现的(每次用它都想吐槽,DSL 太难用了,完全搞不清楚...)
总之,经过反复修改,搜索功能已经实现了:
点击这里尝试:https://ruby-china.org/search?q=Rails+5
有经验的同学可以尝试帮助完善一下 Mapping 的配置,比如权重什么的 另外,暂时还没有中文分词功能,是直接把文字拆开的
elasticsearch-analysis-ik 效果还是挺好的 https://github.com/medcl/elasticsearch-analysis-ik
Elasticsearch 分词会把中文一个一个的拆开,简直溜得不要不要的,哈哈哈~~ 像 uuid 这样的,如果中间带了 - 和 _ 也会被拆成几段
我司启用的时候,发现这个问题就决定把分词关了。等等,要关闭分词,那要重新建索引,也就要重新导数据,亿级的数据量,当时的画面简直不能再美
感觉 Lucene 的几个中文分词都好难用啊 分词可以试试云服务 http://www.ltp-cloud.com/,然后把分词的结果存在 redis 中