天天看点

solr实战入门1将sql文件通过Dataimport导入solr索引库

1.添加相应的jar包

将solr初始服务器中dist下面的jar和mysql的jar包复制到

tomcat服务器D:\solr\apache-tomcat-8.5.42\webapps\solr\WEB-INF\lib中

solr实战入门1将sql文件通过Dataimport导入solr索引库
  • 配置solr找到自带的中文分词器jar包导入D:\solr\apache-tomcat-8.5.42\webapps\solr\WEB-INF\lib中
solr实战入门1将sql文件通过Dataimport导入solr索引库

2.配置中文分词器

修改D:\solr\solrhome\core_demo\conf文件夹下面的managed-schema文件

     <!-- ChineseAnalyzer -->

     <fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100">

       <analyzer type="index">

         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>

       </analyzer>

       <analyzer type="query">

         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>

       </analyzer>

     </fieldType>

复制到该文件的最下面 重新启动服务器,可以在分词器页面中找到该分词器

solr实战入门1将sql文件通过Dataimport导入solr索引库
  • managed-schema文件介绍

1.域的配置

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

name:指定域    这个名称是唯一的

type :域类型 

indexed是否索引 

stored是否储存  

required是否必须

multiValued: 是否多字段 ,比如我们要是想查询的字段包括标题和其中的内容时,可以设置为true

2.域的唯一标识

<uniqueKey>id</uniqueKey>

表示文档的唯一域的标识 (相当于数据库表中的主键)

3.复制域的配置

   <copyField source="cat" dest="text"/>

   <copyField source="name" dest="text"/>

   <copyField source="manu" dest="text"/>

比如我们在搜索时输入一个java,一篇文章分为标题,简介,内容等多个字段,输入的关键字 需要在solr的域中记性域的检索,不可能从一个表中将所有的字段进行检索,因为有些字段不需要索引,所以就出现了复制域,把多个域的关键词复制到同一个域,多个域时,可以放到同一个域中,就不用定义那么多的域了。方便搜索。

4.动态域

<dynamicField name="*_i"  type="pint"    indexed="true"  stored="true"/>

如果命名的是符合动态配合规则,就回去找普通域的规则

solr实战入门1将sql文件通过Dataimport导入solr索引库
  • 域的类型
solr实战入门1将sql文件通过Dataimport导入solr索引库

3.修改solrconfig.xml文件

1.D:\solr\solrhome\core_demo\conf文件下面修改该文件

在720行添加数据库配置

    <!--添加导入配置-->

  <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文件名自定义

2.D:\solr\solrhome\core_demo\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/solr"

    user="root"

    password="123456" />

    <document>

        <entity name="haLock" query="select * from joke" deltaQuery="select * from joke">

            <field column="id" name="id" />

            <field column="title" name="title" />

            <field column="info" name="info" />

        </entity>

    </document>

</dataConfig>

3.回到在managed-schema中配置相应的域,field

     <!--自定义的域-->

     <field name="info" type="solr_cnAnalyzer" indexed="true" stored="true"/>

     <field name="title1" type="solr_cnAnalyzer" indexed="true" stored="true"/>

对相应的域进行映射,可以通过复制域的方式合成一个新的域,这样不管是标题中含有对应信息还是内容中含有对应信息,都可以被查询出来。

4.通过Dataimport进行数据的导入并且测试

solr实战入门1将sql文件通过Dataimport导入solr索引库
solr实战入门1将sql文件通过Dataimport导入solr索引库

继续阅读