承上篇 [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

文章標籤

mysql Solr

全站熱搜

wbkuo 發表在 痞客邦 留言(0) 人氣()