Solr 真是一個不錯的東西,想說架一個來玩,安裝時花了很多時間,網路上大部分查到的都是直接用 jetty 來執行,問了同事之後得知可以把 example 下的 solr.war 檔案直接拉到 tomcat 目錄下,但怎麼試就是沒辦法,這篇記錄 solr 與 tomcat 搭配的過程。

花了不少時間,怎麼 war 檔不是直接拉到 tomcat 目錄下就可以使用 … 這安裝也太麻煩了,先記錄下來,如果有什麼意外要再灌一次才知道怎麼弄。苦痛的記憶開始 … 小蛙的環境是:Ubuntu 13.04 64bit + Solr 4.5.0 + tomcat 7。

  1. 安裝 tomcat 7
    # apt-get install tomcat7
  2. 下載 solr 4.5,假設放在 /usr/src 下
    # cd /usr/src
    # wget http://apache.stu.edu.tw/lucene/solr/4.5.0/solr-4.5.0.zip
  3. 解壓縮 (如果沒有 unzip 就 # apt-get install unzip,不想安裝的話也可以到 這邊下載 tgz 版本)
    # unzip solr-4.5.0.zip
  4. 複製需要的 war 檔案到 tomcat 目錄下
    # cd solr-4.5.0
    # cp ./example/webapps/solr.war /var/lib/tomcat7/webapps/solr.war
  5. 建立 solr.xml 設定檔,底下的 /opt/solr 是 solr 的資料放置目錄
    # vim /var/lib/tomcat7/conf/Catalina/localhost/solr.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/solr" docBase="/var/lib/tomcat7/webapps/solr.war" crossContext="true" privileged="true" antiResourceLocking="false">
      <Environment name="solr/home" type="java.lang.String" value="/opt/solr" override="true" />
    </Context>
  6. 建立 solr 資料目錄,並新增 solr.xml 設定檔
    # mkdir -p /opt/solr
    # vim /opt/solr/solr.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <solr persistent="true">
        <cores adminPath="/admin/cores">
            <core name="example" instanceDir="example" />
            <!-- adding extra cores!
            <core name="another_example" instanceDir="another_example_directory" />
            -->
        </cores>
    </solr>
  7. 更改擁有者及群組
    # chown -R tomcat7:tomcat7 /opt/solr/example
  8. 複製必須的設定檔
    # cp /usr/src/solr-4.5.0/example/solr/collection1/conf/*.txt /opt/solr/example/conf/
    # cp /usr/src/solr-4.5.0/example/multicore/core0/conf/*.xml /opt/solr/example/conf/
  9. 增加以下設定 (參考資料1,先照著做)
    # vim /opt/solr/example/conf/solrconfig.xml
    <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy"></requestHandler>
    <requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
    <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
        <lst name="defaults">
            <str name="spellcheck.onlyMorePopular">false</str>
            <str name="spellcheck.extendedResults">false</str>
            <str name="spellcheck.count">1</str>
        </lst>
            <arr name="last-components">
                <str>spellcheck</str>
            </arr>
    </requestHandler>
    <searchComponent name="suggest" class="solr.SpellCheckComponent">
        <lst name="spellchecker">
            <str name="name">suggest</str>
            <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
            <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
            <str name="field">title</str>
        <str name="buildOnCommit">true</str>
        </lst>
    </searchComponent>
    <requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
        <lst name="defaults">
            <str name="spellcheck">true</str>
            <str name="spellcheck.dictionary">suggest</str>
            <str name="spellcheck.count">10</str>
        </lst>
            <arr name="components">
                <str>suggest</str>
            </arr>
    </requestHandler>
  10. 這應該是一種報應,小蛙設定 Eclipse RSE 時不小心做了刪除動作,結果就把整個 tomcat/webapps 全刪了 … 照著上面的步驟重做一次後發現漏掉這一步 = =,把執行 solr 需要的 JAR 加入到 lib 資料夾中
    # cp /usr/src/solr-4.5.0/example/lib/ext/* /var/lib/tomcat7/webapps/solr/WEB-INF/lib/
  11. 重新啟動 tomcat
    # service tomcat7 restart<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"> </span>

到這邊大致上就完成囉!如果沒有改 tomcat port 的話,http://your_domain:8080/solr 就可以連到 solr 囉!裡面只有剛剛複製的 collection1,之後開始新增 / 修改 / 刪除 資料時,再把過程記錄下來!

更多其他設定請參考 Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面Solr 教學 (3) – 以 Remote Address Filter 限制存取

參考資料:

  1. How to install SOLR 4.0 Cloud with Tomcat 7 on Ubuntu 12.04 LTS @ nodeX
    http://www.nodex.co.uk/article/10-12-12/how-to-install-solr-4-0-cloud-with-tomcat-7-on-ubuntu-12-04-lts
相關文章

Qualcomm Vuforia 教學 (6) – 3D model -> .obj -> .h

終於來到 Vuforia 記錄的最後一篇了,這篇參考到網路上神人的做法,怎麼把一個 3D model 轉換成 Vuforia 可以使用的 .h 檔,這邊之後都直接使用 An
2014-12-10 11:25:50
hans

18

Qualcomm Vuforia 教學 (5) – 替換茶壺 – Android JNI 版本

前面的文章提到為什麼要用 Android NDK 來開發,既然已經有了 Android 版本替換茶壺的文章,這邊記錄 Android NDK 版本的替換茶壺。
2014-12-09 17:54:17
hans

18

Qualcomm Vuforia 教學 (4) – 使用 Android NDK 版本並開啟多重偵測

接續前幾篇教學,我們已經建置好 Vuforia 開發及執行環境
2014-12-09 17:10:57
hans

18

Qualcomm Vuforia 教學 (3) – 替換茶壺 – Android 版本

接續上一篇 
2014-12-09 15:38:17
hans

18

Qualcomm Vuforia 教學 (2) – Create Image Target

接續上篇 
2014-12-09 12:17:40
hans

18

Qualcomm Vuforia 教學 (1) – 安裝 Vuforia

工作上有使用 AR: Augmented Reality
2014-12-08 18:08:50
hans

18

Solr 教學 (5) – 建立新的 Core

這篇文章小蛙要記錄怎麼樣新建一個 Core 並且也加入 DataImportHandler 的方法。

2014-01-08 14:19:30
hans

18

Solr 教學 (4) – 使用 DataImport 匯入資料庫資料

好一陣子沒有用 Solr,接續前幾篇
2014-01-08 12:00:17
hans

18

Solr 教學 (3) – 以 Remote Address Filter 限制存取

前面 Solr 教學 (1) – 安
2013-10-14 23:32:54
hans

18

Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面

接續 Solr 教學 (1) – 安
2013-10-14 22:34:34
hans

18




 回覆

你可以使用以下語法 HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">

(required)

(required)

   
© 2012 蛙齋 Suffusion theme by Sayontan Sinha