solr6.6从Mysql查询数据

1、环境

solr环境搭建和添加core: Solr6.6.0(ik分词器) Tomcat8部署 mysql

mysql5.1web

###2、认识solr域sql

一、域的类型- fieldType:数据库

<fieldType name="uuid" class="solr.UUIDField" indexed="true" />

name:域的名称apache

class:指定solr的类型数组

indexed:是否作索引tomcat

二、域的定义- field:app

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

name:域的名称webapp

type:域的类型,必须匹配类型 如:string,int优化

indexed:是否作索引

stored:是否存储

required:是否必填,通常只有id才会设置

multiValued:是否容许存多个值,容许则里面的值采用数组的方式来存储

三、动态域- dynamicField:

该域的名称是经过一个表达式来指定的,只要符合这个规则,就可使用这个域。好比 a_i,b_i,c_i等等

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

name:域的名称

3、配置 dataimport

在使用solr界面查询mysql数据时,须要先把数据载入到solr,创建索引后,才能查询数据,因此须要使用到solr的dataimport(导入数据库数据)功能。

这里配置的solr自动生成ID,能够看我另外一篇博客:Solr6.6.0 自动生成ID

一、首先找到solr-6.6.0\dist\solr-dataimporthandler-6.6.0.jar,把这个文件复制到apache-tomcat-8.0.9\webapps\solr\WEB-INF\lib下,而且找到mysql数据库的驱动包,也一样放到该目录。

二、找到solr-6.6.0\example\example-DIH\solr\db\conf\db-data-config.xml,把其复制到solr_home\solr\my_core\conf下

三、找到solr_home\solr\my_core\conf\solrconfig.xml,打开并编辑以下代码:

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

改成我们复制的db-data-config.xml

<requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
      <str name="update.chain">uuid</str>  
    </lst>
  </requestHandler>

四、打开并编辑db-data-config.xml,完整的配置文件以下

在配置数据库链接是讲url里的特殊符号要作转义,不然会报错

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull" user="root" password="123456"/>
    <document>
        <!-- name属性,就表明着一个文档,能够随便命名 -->
        <!-- query是一条sql,表明在数据库查找出来的数据 -->
        <entity name="speech" query="select * from speech">
            <!-- 每个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在managed-schema文件中配置过的域才行) -->
            <field column="id" name="s_id"/>
            <field column="content" name="s_content"/>
            <field column="operator" name="s_operator"/>
            <field column="person_synopsis" name="s_person_synopsis"/>
            <field column="person_title" name="s_person_title"/>
        </entity>
    </document>
</dataConfig>

4、启动solr

一、参数 注意的是这里的command参数,它有两个选项

full-import:全量导入,它会覆盖原有的索引

delta-import:即增量导入,它会在原有索引的基础上追加

下面的几个多选框含义解释以下:

verbose:这个选项设为true的话,会打印导入的一些中间过程的详细信息,有利于调试以及了解内部操做细节

clean:表示是否在导入数据建立索引以前先清空掉原有的索引

commit:表示是否当即提交索引

optimize:表示是否优化索引

debug: 表示是否开启调试模式

二、点击蓝色的按钮,执行导入,导入过程依据数量量的大小,须要的时间也不一样。若是数据量小,等待时间过长, 那就不要傻傻的等了,看看Loging中的日志信息是否是报错了。

成功导入以下图:

三、检索数据

相关文章
相关标签/搜索