整理多半天的solr6.6,終於算是把solr6.6中配置數據庫弄出來了,網上的文章千篇一律,各說個的,沒有一篇統一覆蓋solr6.6版本配置的 帖子,本章節我會把配置的一些注意事項一一列舉,由於時間原因,本片只介紹如何一次性導入數據,不附帶增量導入,想看增量的同學可以在后面的文章中。
1,配置准備
本文的前提是你已經配置好了solr,並新創建了一個core,我們下面都會按照前一篇文章中的core_demo為基礎開始
2,修改soreconfig.xml
在soreconfig.xml的<requestHandler name="/select" class="solr.SearchHandler">上面添加如下代碼:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
注意:需要確認文件中不存在其他的dataimport,如果存在直接替換即可
在同級目錄下創建data-config.xml文件,然后配置數據庫相關屬性
<?xml version="1.0" encoding="UTF-8"?> <dataConfig> <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/ecejcallcenter" user="root" password="123456" /> <document> <entity name="cc_bill" dataSource="source1" pk="bill_id" query="SELECT cc_bill.bill_id,cc_bill.`name`,cc_bill.address,cc_bill.city_name,cc_bill.create_time FROM cc_bill"> <field column='bill_id' name='billid' /> <field column='name' name='name' /> <field column='address' name='address' /> <field column='city_name' name='cityname' /> <field column='create_time' name='createtime' dateTimeFormat='yyyy-MM-dd HH:mm:ss' /> </entity> </document> </dataConfig>
關於詳細的配置請參照:http://blog.csdn.net/boolbo/article/details/50352331
官方wiki:https://cwiki.apache.org/confluence/display/solr/
3,配置managed-schema.xml
<?xml version="1.0" encoding="UTF-8" ?> <schema name="example" version="1.6"> <field name="billid" type="int" indexed="true" stored="false"/> <field name="name" type="string" indexed="true" stored="true"/> <field name="address" type="string" indexed="true" stored="true"/> <field name="cityname" type="string" indexed="true" stored="true"/> <field name="createtime" type="date" indexed="true" stored="true"/> <field name="_version_" type="long" indexed="false" stored="false"/> <field name="text" type="string" indexed="true" stored="false" multiValued="true"/> <field name="_root_" type="string" indexed="true" stored="false" docValues="false" /> <uniqueKey>billid</uniqueKey> <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> <fieldType name="int" class="solr.TrieIntField" docValues="true" precisionStep="0" positionIncrementGap="0"/> <fieldType name="long" class="solr.TrieLongField" docValues="true" precisionStep="0" positionIncrementGap="0"/> <fieldType name="date" class="solr.TrieDateField" docValues="true" precisionStep="0" positionIncrementGap="0"/> </schema>
網上很多教程說到schema.xml,這個文件是solr之前的版本中用到的,6.6版本是不需要的,直接修改上面的文件就可以。
4,拷貝jar
拷貝solr-6.6.0\dist路徑下的solr-dataimporthandler-6.6.0.jar,solr-dataimporthandler-extras-6.6.0.jar 到E:\Java\tomcat\apache-tomcat-8.0.26-windows-x64\webapps\solr\WEB-INF\lib目錄下
同時拷貝mysql-connector-java-5.1.40.jar鏈接jar到該目錄下
不需要修改任何配置文件即可,繼續下面的步驟
5,修改jar配置路徑
繼續打開solrconfig.xml 找到lib標簽,修改jar的路徑,下面貼上我本地修改后的路徑
<lib dir="E:\Java\components\solr-6.6.0/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/dist/" regex="solr-cell-\d.*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/contrib/clustering/lib/" regex=".*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/dist/" regex="solr-clustering-\d.*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/contrib/langid/lib/" regex=".*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/dist/" regex="solr-langid-\d.*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/contrib/ltr/lib/" regex=".*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/dist/" regex="solr-ltr-\d.*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/contrib/velocity/lib" regex=".*\.jar" /> <lib dir="E:\Java\components\solr-6.6.0/dist/" regex="solr-velocity-\d.*\.jar" />
不需要添加任何jar即可
6,重啟tomcat,刷新solr頁面即可看到下面界面
full-import 全量導入,delta-import-增量導入
點擊Execute就可以導入了,點擊左側Query可查詢導入的數據