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>

这样,你便可以导入数据了在这里插入图片描述
查询数据

猜你喜欢

转载自blog.csdn.net/u012313382/article/details/84201308