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:域的名称
在使用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&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>
一、参数 注意的是这里的command参数,它有两个选项
full-import:全量导入,它会覆盖原有的索引
delta-import:即增量导入,它会在原有索引的基础上追加
下面的几个多选框含义解释以下:
verbose:这个选项设为true的话,会打印导入的一些中间过程的详细信息,有利于调试以及了解内部操做细节
clean:表示是否在导入数据建立索引以前先清空掉原有的索引
commit:表示是否当即提交索引
optimize:表示是否优化索引
debug: 表示是否开启调试模式
二、点击蓝色的按钮,执行导入,导入过程依据数量量的大小,须要的时间也不一样。若是数据量小,等待时间过长, 那就不要傻傻的等了,看看Loging中的日志信息是否是报错了。
成功导入以下图:
三、检索数据