1. 程式人生 > >solr_4.5.0_07:從資料庫向 solr 中新增索引

solr_4.5.0_07:從資料庫向 solr 中新增索引

今天,我們來講一下 solr 網頁管理中 Dataimport 的使用。

一、首先我們需要在 D:\zsolrwork\solr\server\webapps\solr\WEB-INF\lib 目錄下新增 solr-dataimporthandler-4.5.0.jar、solr-dataimporthandler-extras-4.5.0.jar 和 相應資料庫的連線 jar 包。

二、修改 D:\zsolrwork\solr\home\mycor2\conf 目錄下的 schema.xml 和 solrconfig.xml 檔案,並新增 data-config.xml 檔案。

1、solrconfig.xml 檔案中新增如下程式碼:(在 <config></config> 中)

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
     <lst name="defaults">
        <str name="config">data-config.xml</str>
	</lst>
   </requestHandler>
2、新增 data-config.xml 檔案
<dataConfig>
<dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:test" user="scott" password="tiger"/>
    <document>
        <entity name="movie" query="select * from movie" >
			<field column="id"/>
            <field column="actors" name="actors"/>
            <field column="director" name="director"/>
        </entity>
    </document>
 </dataConfig>
1)dataSource 資料來源,一個配置檔案可以有多個數據源,通過 name 來唯一標識

driver:驅動名稱

url:資料庫連線地址

user:資料庫使用者名稱

password:使用者密碼

2)document:索引文件

3)entity:實體對應資料庫中的表和檢視。一個 document 中可以有多個 entity。 entity 中也可以巢狀子實體。在這裡只做最簡單的例子,更多的屬性配置可以檢視

<dataConfig>
<dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:test" user="scott" password="tiger"/>
    <document>
        <entity name="movie" query="select * from movie" >
			<field column="id"/>
            <field column="actors" name="actors"/>
            <field column="director" name="director"/>
        </entity>
    </document>
 </dataConfig>
field : column 代表資料庫的欄位名稱

field:name 代表索引資料庫中的欄位名稱

4)注意上面 xml 檔案中 field 的 name 屬性必須在 schema.xml 檔案中有相應的配置才行。所以在 schema.xml 檔案中新增 actors 和 director 配置:

<field name="actors" type="string" indexed="true" stored="true"/>
	<field name="director" type="string" indexed="true" stored="true"/>
三、在 solr 頁面中使用 Dataimport 功能

四、補充: