win10下安裝Solr7.3.1,並匯入mysql資料
下載後解壓到一個位置,我這裡是G:\solr-7.3.1,下文用${solr_home}表示solr所在的路徑
然後用cmd進入到${solr_home}\bin目錄,然後執行,啟動solr
solr start
下面要去建立solr的core,因為這裡是單機,所以只建立一個core
上面為預設資訊,此時點選確定後,發現會提示失敗
發現${solr_home}\server\solr\下面多了new_core一個空資料夾,此時再去下面建一個data資料夾。然後把${solr_home}\server\solr\configsets\_default\conf下的檔案拷貝到${solr_home}\server\solr\new_core下此時重啟solrError 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 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檔案就好了