利用SOLR從資料庫建立索引

來源:互聯網
上載者:User

solr功能非常強大,可以建立各種資料的索引,常見的公司專屬應用程式中,少不了資料庫的索引的建立,可以通過寫程式 可以將資料讀出100條,如果你的記憶體夠大,可以是1000條甚至更多,然後放入Collection中,批量提交至solr。或者讀取資料寫入xml檔案中,再將該檔案提交到solr等等。但是,solr也只帶了資料庫建立索引的功能,步驟如下:

一、通過solr內建的example
準備工作:
1、在apache官網下載 apache-solr-1.3.0.zip
2、下載mysql、hsql驅動(下面例子會用到)

環境描述:
1、tomcat版本 6.0.29  位置:D:/tomcat6.0.29   設定環境變數:CATALINA_HOME=D:/tomcat6.0.29
2、jdk1.5

步驟:
1、解壓縮apache-solr-1.3.0.zip copy apache-solr-1.3.0/example/solr  檔案夾到D:/tomcat6.0.29,目錄結構為D:/tomcat6.0.29/solr
2、copy apache-solr-1.3.0/dist/apache-solr-1.3.0.war到D:/tomcat6.0.29/webapps/,兵將apache-solr-1.3.0.war改為solr.war,tomcat會自動解壓縮該檔案,產生solr檔案夾,copy上面下載的mysql、hsql驅動包到D:/tomcat6.0.29/webapps/solr/WEB-INF/lib下
3、copy apache-solr-1.3.0/example/solr裡面內容到 D:/tomcat6.0.29/solr裡面--(原文第三步到這裡就結束了- 但因第四步無法繼續 所以我把下載到的apache-solr-1.3.0/example/example-DIH/solr裡的內容複寫到D:/tomcat6.0.29/solr下)

4、刪除D:/tomcat6.0.29/solr/rss,修改D:/tomcat6.0.29/sorl/solr.xml  檔案,去掉<core default="true" instanceDir="rrs" name="rrs"></core>該行
5、copy apache-solr-1.3.0/example/example-DIH內的hsqldb.zip 目錄到D:/tomcat6.0.29,解壓縮hsqldb.zip到當前檔案夾,改檔案為hsql資料庫檔案
6、到此,完成,

運行測試:
開始-運行  cmd  進入命令列,切換目錄到D:/tomcat6.0.29,輸入bin/startup.bat,啟動tomcat6,如果上面配置無誤,可以查看tomcat日誌看是否有錯誤,確定無錯後,在瀏覽器輸入http://127.0.0.1:8080/solr/db/dataimport?command=full-import,既可以看到輸出

二、測試mysql資料庫
環境和建立的檔案夾延續上面的
步驟:
1、在D:/tomcat6.0.29/solr下建立mysqltest檔案夾,copy D:/tomcat6.0.29/solr/db 裡面的內容到D:/tomcat6.0.29/solr/mysqltest
2、修改D:/tomcat6.0.29/solr/solr.xml檔案內容為
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<solr sharedLib="lib" persistent="true">
    <cores adminPath="/admin/cores">
        <core default="true" instanceDir="mysqltest" name="mysqltest"></core>
    </cores>
</solr>
3、修改D:/tomcat6.0.29/solr/mysqltest/conf/db-data-config.xml 內容為:
<dataConfig>
     <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password=""/> 
     <document name="mybook"> 
             <entity name="book" pk="id" query="select * from book"> 
             <field column="id" name="id" /> 
             <field column="bookname" name="bookname" /> 
             <field column="bookathor" name="bookathor" />
         </entity> 
     </document>
</dataConfig>
4、因為bookname、bookathor2個欄位在D:/tomcat6.0.29/solr/mysqltest/conf/schema.xml不存在,所以,要增加著2個field
<field name="bookname" type="string" indexed="true" stored="true" required="true" />
   <field name="bookathor" type="string" indexed="true" stored="true" required="true" />
注意:在該檔案有<field  的地方增加,

5、將D:/tomcat6.0.29/solr/mysqltest/conf/solrconfig.xml
中<dataDir>${solr.data.dir:./solr/db/data}</dataDir>
改為<dataDir>${solr.data.dir:./solr/mysqltest/data}</dataDir>

6、到此完成
運行測試:
開始-運行  cmd  進入命令列,切換目錄到D:/tomcat6.0.29,輸入bin/startup.bat,啟動tomcat6,如果上面配置無誤,可以查看tomcat日誌看是否有錯誤,確定無錯後,在瀏覽器輸入http://127.0.0.1:8080/solr/mysql ... command=full-import,既可以看到輸出。通過上面訪問,就建立了資料庫索引
可以訪問http://127.0.0.1:8080/solr/mysqltest/admin/,在Query String: 輸入id:搜尋內容(格式為  要搜尋的欄位:搜尋索引鍵)來測試是否已經將資料表中的資料建立了索引,也可以在該介面修改搜尋的參數

最後在說說這個功能。上面的例子只不過是很簡單的一個部分。針對solr的MultiCore,通過配置db-data-config.xml也可以實現,還有多表,或者多表關聯等等操作只要在db-data-config.xml配置清楚都可以進行資料的匯入。
在solr1.4中還有更多的擴充功能,這些功能為重建索引提供能很方便的操作。而且,datasource不單單指的是database,可以是xml檔案,還可以是來自網路上的等等。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.