Solr技術配置,以及資料匯入和分詞器的使用
1 下載好solr 4.9.1版本 解壓solr的zip包,目錄如下。 2 將dist目錄下的solr-4.9.1.war檔案複製到tomcat的webapps目錄下,並將檔案命名為solr.war。 3 啟動tomcat,會發現solr.war已解壓成為資料夾,在刪除tomcat 的webapps目錄下的solr的war包。 4 複製solr解壓包lib/ext下的jar檔案到tomcat的lib目錄下
5 在計算機本地新建一個資料夾solr_home, 然後複製solr-4.9.1\example\solr 下的所有檔案到 solr_home下,後其中bin目錄無用刪除掉。 6 修改配置檔案\webapps\solr\WEB-INF\web.xml 在最後面新增如下: D:/solr_home-指向你的建立solr_home的路徑
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value> D:/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
至此solr部署完成,下面開始連線mysql資料庫的配置。 1 拷貝資料庫連線jar包mysql-connector-java-5.1.46到tomcat下的lib目錄。 2 此時solr_home下有collection1,複製collection1並從命名,假如命名為news。 3 開啟solr_home\news\conf目錄下的solrconfig.xml檔案,在前新增
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
4 在solr_home\news\conf下建立data-config.xml檔案,這檔案主要就是連線mysql資料,並設定匯入solr資料的語句,例子如下:
<?xml version="1.0" encoding="utf-8"?>
<dataConfig>
<!--資料來源 -->
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/smbms" user="root" password="(填你的資料庫密碼)"/>
<document name="hotel_doc">
<entity name="hotel" pk="id"
query="select id,userName,address from smbms_user "
deltaImportQuery="select id,userName,address from smbms_user where id='${dih.delta.id}'"
deltaQuery="SELECT id as id FROM smbms_user where modifyDate > '${dih.last_index_time}'">
<field name="id" column="id" />
<field name="userName" column="userName" />
<field name="address" column="address" />
</entity>
</document>
</dataConfig>
5 開啟solr_home\news\conf下的schema.xml,只保留 刪除檔案中所有其它的field. 6 在刪除所有 dynamicField標籤和 copyField標籤,在 下新增
<field name="id" type="int" indexed="true" stored="true"/>
<field name="userName" type="string" indexed="true" stored="true"/>
<field name="address" type="string" indexed="true" stored="true"/>
<field name="text" type="text_general" indexed="true" stored="false"
multiValued="true"/>
其中 name=“id”, <field name=“userName”, <field name=“address”,根據自己連線資料庫的欄位自行配置。 這個標籤是固定不變的。 7 將solr-4.9.1\distsolr目錄下的dataimporthandler-extras-4.9.1.jar和solr-dataimporthandler-4.9.1.jar兩個jar包複製到 apache-tomcat-7.0.90\webapps\solr\WEB-INF\lib 下。
8 此時從起tomcat,在訪問solr,此時報紅,有Invalid Number: MA147LL/A錯誤,彆著急。 9 solr_home\news\conf下開啟elevate.xml檔案,將最後一段下面的程式碼註釋掉就ok了。
<query text="ipod">
<doc id="MA147LL/A" /> put the actual ipod at the top -->
<doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
</query>
10 重啟tomcat,在進入solr就正常了。進入如下操作,就將資料從mysql中匯入solr中。 11 非常完美的顯示資料,很棒。
看右邊就是從mysql中匯入的資料,至此solr第一步已經完成,第二步包括從solr獲取資料,和用分詞器進行查詢,將在下一節繼續介紹,絕點有用給點個贊,收藏一下,關注一下,謝謝。