搜索引擎 支持中文分词的 sunspot_solr

xhj6 · 2013年11月30日 · 最后由 snull 回复于 2017年01月17日 · 11026 次阅读

前几天在折腾搜索功能,发现 solr + sunspot 仍应是当前的首选,成熟度以及开发文档、开发实例的完备性和丰富性等方面都比 elasticsearch + tire 要好一些,如果你钟情于 elasticsearch,也许应再等一等elasticsearch-ruby 的开发进度,比方说等到这个问题关闭了之后。

与 elasticsearch 相比,solr 的安装配置稍显麻烦,但是 @quakewang 做了一个脚本,可以一步完成 solr 的下载安装,已经非常简单了,但在开发测试环境中还是没有 sunspot 自带的 sunspot_solr 使用起来方便,于是我就直接修改了 sunspot_solr,将其中的 solr.war 替换为 solr 4.3.1 版,并集成了 mmseg4j 1.9.1 中文分词插件,在开发测试环境中安装使用 solr 就可以完全 gem 化了(在生产环境中使用也是完全可以的):

安装:

gem 'sunspot_rails', '~> 2.1.0'
group :development, :test do
  gem 'sunspot_solr', github: 'xhj/sunspot', require: 'sunspot_solr'
end

使用:

bundle exec rake sunspot:solr:start

简单吧?哈哈!

你是把 mmseg4j 的三个包直接扔都 solr.war 里面然后再重新打包吧! 之前就是因为不知道怎么把 mmseg4j 放进 solr 里来,对 Java 的东西又不熟,所以折腾了两天,最后还是用 IKAnalyzer 容易点。

其实在生产环境中直接把使用 sunspot_solr 也挺好的,然后部署脚本可以参考这里

现在也遇到一个搜索功能,sunspot 具体该如何用,能否给个小例子,谢谢了

中文中加入空格好像就不能正确的分词了,不知道有没有遇到过。 比如我搜索“你好 世界”,和“你好”以及“世界”的结果都查询不到,但是连起来搜索“你好世界”的时候,就可以查出两个词语的结果。

执行 rake:sunspot:solr:start 报错如下: this command is not supported on i386-mingw32. 怎么解决

easyhappy Sunspot 学习笔记 提及了此话题。 06月08日 13:58

#5 楼 @zhf 你的问题解决了吗,我也遇到了这个问题不知道如何是好

brucebot rails 使用 sunspot-solr 做搜索「已解决」 提及了此话题。 04月03日 10:57
需要 登录 后方可回复, 如果你还没有账号请 注册新账号