承上篇 [Solr] Solr 學習筆記(四) 建立自己的 Core 繼續來做 Data Import Handler 的操作
1. 修改 solrconfig.xml
在 config TAG 中加上 dataimport 的設定(原本應該已經有了,請搜尋 dataimport)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> </lst> </requestHandler>
說明
db-data-config.xml 為指定的 data-config 名稱,你可以指定自己想要的名稱
2. 修改 db-data-config.xml
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/wbkuo" user="root" password="ezlms"/> <document> <entity name="content" query="SELECT id, title, author, createTime, body FROM blog_doc" deltaQuery="SELECT id FROM blog_doc WHERE createTime > '${dataimporter.last_index_time}'"> <field column="id" name="id" /> <field column="title" name="title" /> <field column="author" name="author" /> <field column="createTime" name="createTime" /> <field column="body" name="body" /> </entity> </document> </dataConfig>
3. 修改 schema.xml
<fields> <!-- 在 fields Tag 中刪除多餘的 field,並寫上自己要的欄位 --> <field name="id" type="integer" indexed="true" stored="true" required="true" multiValued="false" /> <field name="title" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="author" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="createTime" type="date" indexed="true" stored="true" required="true" multiValued="false" /> <field name="body" type="text" indexed="true" stored="true" required="false" multiValued="false" /> </fields> <!-- 更新資料時的主鍵 --> <uniqueKey>id</uniqueKey> <!-- 不指定欄位時的預設搜尋欄位 --> <defaultSearchField>title</defaultSearchField> <!-- 查詢 keyword 有空白時,預設是以何種方式查詢 "AND|OR" --> <solrQueryParser defaultOperator="OR"/>
4. 複製 MySQL 的 JDBC 檔案
請自行到 MySQL 官網下載(我是從 http://dev.mysql.com/downloads/connector/j/3.1.html 下載的,也可以 google: mysql jdbc )
下載後解壓縮,將 mysql-connector-java-5.1.26-bin.jar 複製到 /var/www/solr/search/solr/blog_doc/lib
5. 做 Core Reload
開啟 Solr 的 Web 管理介面,點選右側第三個功能 [Core Admin],先選擇 blog_doc 之後,再點選右側上方按鈕 [Reload Core]
6. 匯入資料
這裡有兩個方式
6.1 使用 Solr Web 管理介面
在左側先選擇 core : blog_doc 之後,點選 DataImport 功能
[Command] 選擇 [full-import],勾選 [Commit] 選項,點擊 [Execute] 按鈕
這樣就會將執行 DataImport 的動作了
由於匯入不會立即完成,可以試著點選 [Refresh Status] 重新整理狀態
看到 Indexing completed. Added/Updated: 212 documents. Deleted 0 documents. (Duration: 07s) 就代表匯入完成了
6.2 使用 URL 方式呼叫
執行 http://YOUR_DOMAIN/solr/blog_doc/dataimport?command=full-import&commit=true&wt=json
留言列表