Solr配置連接數據庫

在solr_home中有每個例子的配置文件,每建成一個會有默認的配置,具體建立的方法不介紹了。現在我們介紹連接數據庫,在建成的例子文件下找到conf文件夾,配置其中的data-config.xml

<?xml version="1.0" encoding="UTF-8"?> 
<dataConfig>
    <dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/solrdb?useSSL=true&amp;verifyServerCertificate=false&amp;allowMultiQueries=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"
              user="root"
              password="*******" />
              <!--
				數據庫的基本情況   多匹配與編碼方式等
			-->
    <document>
        <entity name="php_code" transformer="HTMLStripTransformer" dataSource="jdbcDataSource" pk="id"
            query="SELECT id,code FROM php_code">
            <field column='id' name='id' />
			<field column='code' name='code' stripHTML="true" />
			<!--
				其中,id與column爲數據庫中的屬性,因爲我存的是代碼段,所以我加了HTML標籤,這個可以不管
			-->
           
        </entity>
    </document>
</dataConfig>

接下來配置managed-schema(高版本是這個,低版本是schema.xml)

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <!-- docValues are enabled by default for long type so we don't need to index the version field  -->
    <field name="_version_" type="plong" indexed="false" stored="false"/>
    <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
    <field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
	
	<field name="code" type="text_ik" indexed="true" stored="true"/>

發現了沒有,其中包括了id跟之前的code,id默認有所以不管它, 重點介紹field中的code屬性,type是分詞方式,這裏用了text_ik分詞方式(一般都需在網上把這個jar包下載),indexed是是否索引,stored是是否在之後檢索中顯示出來。如果你配置的分詞方式是默認沒有的,比如這個"text_ik" ,那麼要在下面說明

<!-- ik分詞器 -->
	<fieldType name="text_ik" class="solr.TextField">
		<analyzer type="index">
			<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
			<filter class="solr.LowerCaseFilterFactory"/>
		</analyzer>
		<analyzer type="query">
			<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
			<filter class="solr.LowerCaseFilterFactory"/>
			<charFilter class="solr.HTMLStripCharFilterFactory" />
		</analyzer>
	</fieldType>

顧名思義,"index"與"query"分別代表索引與查詢的,fiter是需要的過濾器,有什麼特殊需求可以查看solr的每種過濾器,本文中採用的是不區分大小寫跟過濾html標籤。
最後,你得在solr配置中加入從數據庫導入的聲明,在solrconfig.xml中加入:

  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
       <lst name="defaults">
          <str name="config">data-config.xml</str>
       </lst>
 </requestHandler>

這樣,你便可以導入數據了在這裏插入圖片描述
查詢數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章