Gem Linux 下 Sunspot 全文搜索小记

lonely21475 · September 16, 2014 · Last by flowerwrong replied at September 17, 2014 · 2885 hits

https://github.com/sunspot/sunspot 1、在 Gemfile 添加并 bundle install

gem 'sunspot_rails'
gem 'sunspot_solr'

2、生成配置文件 rails generate sunspot_rails:install 3、启动 Solr 服务 #启动需要调用 Java 环境 bundle exec rake sunspot:solr:start bundle exec sunspot-solr start #默认端口 -p 8393 暂停 Solr 服务 bundle exec rake sunspot:solr:stop bundle exec sunspot-solr stop 4、需要全文搜索的 model/comment.rb

class Comment < ActiveRecord::Base
  attr_accessible :auther, :content, :tag, :title
  searchable do
      text :title
      text :tag
      text :content
  end
end

5、全文搜索 + 分页 controllers/comments_controller.rb

 require 'will_paginate'
 class CommentsController < ApplicationController
  def index
    search = Comment.search do
       fulltext params[:query]
       paginate :page => params[:page] || 1,  :per_page => 5
    end 
    @searchs = search.results
  end
end

================================================================================= 【Linux 安装配置 JAVA】 http://www.java.com/zh_CN/download/manual.jsp?locale=zh_CN#lin 1、下载 Java jre jre-7u7-linux-i586.tar.gz 2、创建目录 /usr/java sudo mkdir java 3、将该文件移动到目录 sudo mv jre-7u7-linux-i586.tar.gz /usr/java 4、解压文件 sudo tar xvzf jre-7u7-linux-i586.tar.gz 会生成目录 /usr/java/jre1.7.0_55 5、配置环境变量

sudo vim /etc/profile

export JAVA_HOME=/usr/java/jre1.7.0_55
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

保存退出

:wq

有没有不用 sunspot_solr,单独配置 solr 和 sunspot_rails。

#1 楼 @flowerwrong 当然可以 现在 sunspot_solr 内置的是 4.2 的 solr 自己启一个 solr 就和 sunspot_solr 一样一样的

#2 楼 @zj0713001 你意思是自己启动一个 solr,然后不用 sunspot_solr 的,但是他的配置文件还是得用是吗?因为 rails generate sunspot_rails:install 只是生成了 config/sunspot.yml 文件。而bundle exec rake sunspot:solr:start会生成一堆东西在 solr 文件夹下。我们做 reindex 的时候,也用到了 sunspot_solr,rake sunspot:solr:reindex。问题就是 solr 下面的那一堆文件还需不需要呢?还有就是如果不需要,也就是完全不需要 sunspot_rails(in production),那么我怎么做 index 或者 reindex,solr 使用 post,但是我没看到 sunspot_rails 里面有做 index 的命令,是不是说还是得需要 sunspot_solr? 另外,我看到官网把 sunspot_solr 标注为可选,表示我们可以完全不用他。 可能有点乱。 谢谢。

#3 楼 @flowerwrong 嗯 是这样的 你需要把 sunspot_solr 的配置文件添加到你自己的 solr 里 具体文件是你的 solr 目录的 conf/schema.xml solr4 可能是要加一个实例名的文件架 例如 collection1 你可以看看 sunspot_solr 的配置 他就是直接添加了配置的 solr https://github.com/sunspot/sunspot/tree/master/sunspot_solr/solr/solr/conf

#1 楼 @flowerwrong 目前只是学习全文检索功能,深化细节还没有考虑到这么多,谢谢你提意见,我也试着改改,能否成功!

#6 楼 @themorecolor thx, 我试试集成中文分词。

#6 楼 @themorecolor rake sunspot:reindexrake sunspot:solr:reindex的区别在哪儿?

You need to Sign in before reply, if you don't have an account, please Sign up first.