搜索了大部分内容都是关于 gem 'sunspot_rails' gem 'sunspot_solr' # optional pre-packaged Solr distribution for use in development 这两个 GEM 的配合使用。
sunspot_rails 和 solr 的几乎没有。。
之前主要卡在 solr 和 sunspot 怎么连接 这里。。网上也没有相关的中文资料 英文文档看的又慢。。 Fight 了几个小时,还好 现在能跑起来了。
一。安装 solr 基本上没有遇到什么问题 可以直接参考下面的参考链接傻瓜安装 弱弱的翻译一下 1.先安装依赖的 jdk
sudo apt-get -y install openjdk-7-jdk
mkdir /usr/java
ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default
cd /opt
wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz
tar -xvf solr-4.7.2.tgz
cp -R solr-4.7.2/example /opt/solr
cd /opt/solr
java -jar start.jar
如果没什么问题的话,打开 http://YOUR_IP:8983/solr 你应该就可以看到 solr 的管理后台了
2.先按 Ctrl+C 把 solr 关闭,配置 jetty
vim /etc/default/jetty
把下面的配置代码 粘贴进去 保存 退出
NO_START=0 # Start on boot
JAVA_OPTIONS="-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS"
JAVA_HOME=/usr/java/default
JETTY_HOME=/opt/solr
JETTY_USER=solr
JETTY_LOGS=/opt/solr/logs
打开 /opt/solr/etc/jetty-logging.xml 粘贴代码 保存 退出
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!-- =============================================================== -->
<!-- Configure stderr and stdout to a Jetty rollover log file -->
<!-- this configuration file should be used in combination with -->
<!-- other configuration files. e.g. -->
<!-- java -jar start.jar etc/jetty-logging.xml etc/jetty.xml -->
<!-- =============================================================== -->
<Configure id="Server" class="org.mortbay.jetty.Server">
<New id="ServerLog" class="java.io.PrintStream">
<Arg>
<New class="org.mortbay.util.RolloverFileOutputStream">
<Arg><SystemProperty name="jetty.logs" default="."/>/yyyy_mm_dd.stderrout.log</Arg>
<Arg type="boolean">false</Arg>
<Arg type="int">90</Arg>
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
<Get id="ServerLogName" name="datedFilename"/>
</New>
</Arg>
</New>
<Call class="org.mortbay.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
<Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
<Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call></Configure>
3.创建用户,权限
sudo useradd -d /opt/solr -s /sbin/false solr
sudo chown solr:solr -R /opt/solr
4.配置默认启动
sudo wget -O /etc/init.d/jetty http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-distribution/src/main/resources/bin/jetty.sh
sudo chmod a+x /etc/init.d/jetty
sudo update-rc.d jetty defaults
5.完成 启动
sudo /etc/init.d/jetty start
如果没有问题 http://YOUR_IP:8983/solr 这个页面应该是可以访问的
7.把 /opt/solr/solr/collection1 重命名成一个可读性好的文件名称 apples 可以自己随便写
cd /opt/solr/solr
mv collection1 apples
cd apples
打开 core.properties 文件 把里面的 collection1 修改成 刚刚修改的名称 apples
8.删除 data 目录
rm -R data
9.在 Gemfile 添加
gem 'sunspot_rails'
gem 'sunspot_solr' # optional pre-packaged Solr distribution for use in development
依次执行
bundle install
rails generate sunspot_rails:install
bundle exec rake sunspot:solr:start
会在项目目录下生成 solr 目录
把 solr/conf/schem.xml copy 到 /opt/solr/solr/apples/conf/schem.xml 这里 你的应该也是这里。
10.修改上面生成的 config/sunspot.yml 配置文件
production:
solr:
hostname: localhost
port: 8983
log_level: WARNING
path: /solr/apples
solr_home: /opt/solr/solr
data_path: /opt/solr/solr/apples/data
# read_timeout: 2
# open_timeout: 0.5
11. 重启 jetty sudo /etc/init.d/jetty restart
试试 重建索引以及搜索等。 RAILS_ENV=production bundle exec rake sunspot:reindex
参考: https://www.digitalocean.com/community/tutorials/how-to-install-solr-on-ubuntu-14-04 https://github.com/sunspot/sunspot