Solr:將資料庫匯入到索引庫<五>
阿新 • • 發佈:2018-12-30
將資料庫匯入到索引庫
準備:
-
- 資料表:我的測試表:testsolr
- mysql驅動
配置資料匯入功能:
-
- 在solrconfig.xml中配置requestHandler
- 配置資料匯入外掛
- 在索引庫中建立lib資料夾
- 在solrconfig.xml中引入
1.1 自定義索引庫:testsolr
參考 solr的第二篇,自定義索引庫
刪除複製過來的索引庫中的data資料夾:沒有data資料夾 會自動建立
schema.xml 部分配置:(參考solr:自定義索引庫的中的:修改schema.xml檔案)
<field name="id" type="string"indexed="true" stored="true" required="true" multiValued="false" /> <field name="product_name" type="text_ik" indexed="true" stored="true" /> <field name="product_catalog" type="int" indexed="true" stored="true" /> <field name="product_catalog_name" type="text_ik" indexed="true"stored="true" /> <field name="product_price" type="double" indexed="true" stored="true" /> <field name="product_description" type="text_ik" indexed="true" stored="false" /> <field name="product_picture" type="text_ik" indexed="true" stored="true" /> <uniqueKey>id</uniqueKey> <field name="product_keywords" type="text_ik" indexed="true" stored="true" multiValued="true"/> <copyField source="product_name" dest="product_keywords"/> <copyField source="product_catalog_name" dest="product_keywords"/> <copyField source="product_description" dest="product_keywords"/> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer" /> <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer" /> </fieldType>
1.2 新增dataimporthandler jar包---額外功能—外掛
在索引庫中建立lib 資料夾,存放 dataimporthandler jar包
1.3 在solrconfig.xml中引入jar
<lib dir="../lib/" regex="solr-dataimporthandler-\d.*\.jar" />
1.4 在solrconfig.xml檔案 配置requestHandler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> </lst> </requestHandler>
db-data-config.xml是連線資料庫的配置檔案
1.5 conf目錄下新增db-data-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test01" user="root" password="root"/> <document> <entity name="product" query="SELECT pid,name,catalog,catalog_name,price,description,picture FROM testsolr"> <field column="pid" name="id"/> <field column="name" name="product_name"/> <field column="catalog" name="product_catalog"/> <field column="catalog_name" name="product_catalog_name"/> <field column="price" name="product_price"/> <field column="description" name="product_description"/> <field column="picture" name="product_picture"/> </entity> </document> </dataConfig>
field :
- column 資料庫中的列
- name 索引庫中的對應的名字