1. 程式人生 > >win10下安裝Solr7.3.1,並匯入mysql資料

win10下安裝Solr7.3.1,並匯入mysql資料

下載後解壓到一個位置,我這裡是G:\solr-7.3.1,下文用${solr_home}表示solr所在的路徑

然後用cmd進入到${solr_home}\bin目錄,然後執行,啟動solr

solr start


下面要去建立solr的core,因為這裡是單機,所以只建立一個core


上面為預設資訊,此時點選確定後,發現會提示失敗

Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'G:\solr-7.3.1\server\solr\new_core'
發現${solr_home}\server\solr\下面多了new_core一個空資料夾,此時再去下面建一個data資料夾。然後把${solr_home}\server\solr\configsets\_default\conf下的檔案拷貝到${solr_home}\server\solr\new_core下此時重啟solr
solr stop -all
solr start

然後重新新增一下core,發現core新增成功了

此時去看log面板,發現有警告


我們再到${solr_home}\server\solr\new_core下新建一個conf資料夾。

此時再次重啟solr後,就沒有警告了。

下面我們匯入mysql資料:

新建一個表

CREATE TABLE `people` (
`id`  int NOT NULL ,
`name`  varchar(255) NULL ,
`telephone`  int NULL ,
`sex`  varchar(255) NULL ,
`address`  varchar(255) NULL ,
PRIMARY KEY (`id`)
);

1、jar包放入web專案:把自己以前用過的mysql-connector-java-5.1.6.jar(沒有的話自行上網搜)和${solr_home}\dist下面的solr-dataimporthandler-7.3.1.jar放入到${solr_home}\server\solr-webapp\webapp\WEB-INF\lib目錄下

2、然後往${solr_home}\server\solr\new_core\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>  	

然後在同一個目錄下面新建一個data-config.xml  並寫入下面內容,這裡column是指資料庫中的列明,name是指solr中顯示的名稱

<dataConfig>  
   <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.199.156:3306/test" user="root" password="root"/>  
   <document>  
       <entity name="people"  query="select * from people"  dataSource="source1" >  
           <field column="id" name="id" />  
           <field column="name" name="name" />  
           <field column="telephone" name="telephone" />  
   <field column="telephone" name="telephone" />  
   <field column="address" name="address" />  
       </entity>  
   </document>  
</dataConfig>

然後去修改${solr_home}\server\solr\new_core\manager-schema.xml檔案,在<schema></schema>標籤中加入作為solr索引的欄位,這裡不配的話,會導致後面導資料的時候不成功。加入欄位。

這裡要注意!!!原始的manager-schema.xml檔案裡面就已經有隊id列的定義,所以此時不用自己手動再加。    

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

只需要加下面的內容

    <field name="name" type="string" indexed="true" stored="true" />  
    <field name="telephone" type="string" indexed="true" stored="true" />  
    <field name="sex" type="string" indexed="true" stored="true" />  
    <field name="address" type="string" indexed="true" stored="true" /> 

然後重啟solr,發現進到Dataimport裡面能夠正常顯示


此時往資料庫加點資料,內容如下:

然後回到solr,到Dataimport點選Execute和Refresh Status按鈕,可以看到


這個時候我們到Query欄點選查詢按鈕,可以看到資料能夠搜尋出來了


用json格式查詢指定位置,可以查到指定的內容的實體


但是當前的搜尋功能只支援精確查詢,要是想通過模糊查詢的話,還得用上solr的分詞器。

=====================================

在log面板發現下面的內容

那我們就到${solr_home}\server\solr\new_core\conf下面建立一個dataimport.properties檔案就好了