在 Ubuntu 14 安裝 Solr 5.2.1

2015.7.7-16

以下設定方法在 server reboot 之前可以成功,但是 server reboot 之後 會出現錯誤:

SolrCore Initialization Failures
[CoreName]: java.lang.NullPointerException:java.lang.NullPointerException

參考 Apache Solr 5.2 Reference Guide 裡面的 Taking Solr to Production

install java

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer

download and install solr 5.2.1

download solr-5.2.1.tgz

執行

$ tar xzf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2

上面的命令會將安裝程式 install_solr_service.sh 解壓縮出來放在目前資料夾下面。

安裝程式必須以 root 執行:

$ sudo bash ./install_solr_service.sh solr-5.2.1.tgz

預設情況下,安裝程式會將 solr 壓縮檔解壓縮到 /opt,並設定 solr 會寫入的檔放在 /var/solr,並以 solr 這個使用者來執行 solr。

solr 可以有多個 core,每個 core 有個別的索引、設定檔。建立一個資料夾來放所有的 cores:

$ sudo mkdir /var/solr/data/cores

在這個資料夾下建一個 core 資料夾給這個專案 xxx 用

$ sudo mkdir /var/solr/data/cores/xxx

參考 GitHub 上 sunspot 在這個資料夾下建一個檔案 core.properties:

新建檔案 /var/solr/data/cores/cbdatastore/core.properties

$ sudo editor /var/solr/data/cores/xxx/core.properties

檔案內容

name=xxx
configSet=sunspot
dataDir=./data

從 GitHub sunspot/sunspot_solr/solr/solr/configsets 複製到 /var/solr/data/configsets

設權限

sudo chown -R solr:solr /var/solr/data/configsets
sudo chown -R solr:solr /var/solr/data/cores/xxx

restart solr

$ sudo service solr restart

測試從 client 連 http://xxx.dila.edu.tw:8983/solr/xxx/select?q=video,應該要有回應。