solr7.7.3安装

提示:需要准备对应mysql.jar包

配置

一下操作都是基于测试成功的 solr7.7.3版本 单表的一个操作

0、

solr 解压
启动
    .\solr start
停止    
    .\solr stop -all
访问http://localhost:8983/

1、添加jar

   分别是solr连接mysql的Jar,一个是mysql驱动Jar
   
   进入solr-7.7.3\dist,将solr-dataimporthandler-7.7.3.jar,solr-dataimporthandler-extras-7.7.3.jar拷贝到solr\server\solr-webapp\webapp\WEB-INF\lib目录下
   将mysql-connector-java-5.0.8-bin.jar拷贝到\solr\server\lib目录下

2、进入solr\server\solr目录创建核心core目录

创建的就是这个

在这里插入图片描述

进入bin目录用  .\solr create -c hotel   创建核心core目录

3、进入\server\solr\创建核心core目录\conf

   修改solrconfig.xml文件,新增:
   <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
     <lst name="defaults">
       <str name="config">data-config.xml</str>
     </lst>
   </requestHandler>

4、新增data-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
   <dataSource type="JdbcDataSource" driver="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/ly?serverTimezone=Asia/Shanghai" user="root" password="2418870649"/>
   <document>
       <entity name="ly_article" pk="wid"

           query = "select wid, articlename,artuledata from ly_article"

           deltaQuery="select wid from ly_article where artuledata > '${dih.last_index_time}+8'"

		  deletedPkQuery="select wid from ly_article where isdelete = 1"

           deltaImportQuery = "select wid, articlename,artuledata from ly_article where wid='${dih.delta.wid}'"

		   >
           <field column="wid" name="wid" />
           <field column="articlename" name="articlename" />
		  <field column="artuledata" name="artuledata" />

       </entity>
   </document>
</dataConfig>

说明:artuledata 是时间字段 datetime (必须有)   isdelete 删除标识 int(必须有)


属性
    column:SQL 查询的列名  或者说是  数据库中的字段
    Name:solr 域 field 中的域名 或者说是 name就是solr中显示的名称。


query             是获取全部数据的SQL
deltaImportQuery  是获取增量数据时使用的SQL              
deltaQuery        是获取pk的SQL
parentDeltaQuery  是获取父Entity的pk的SQL

5、 修改managed-schema文件

    配置 field 域(这里的name 对应data-config.xml中的name):
    某个字段需要模糊查询(中文分词),要将其类型改为type="solr_cnAnalyzer"

	   <!-- 业务域
			 name: 域名称
			 type: 域的数据类型
			 indexed: 是否创建索引
			 stored: 是否存储
			 required: 是否必须的域
		-->
		
     删除原本有的field (原本的在文件最上面),不要删除错了   name="_version_"  name="_root_"  name="_text_" 不要删除  不要删除  不要删除
     <field name="wid" type="string" uninvertible="true" indexed="true" stored="true"/>
     <field name="articlename" type="string" uninvertible="true" indexed="true" stored="true"/>
	 <field name="artuledata" type="string" uninvertible="true" indexed="true" stored="true"/>

     <uniqueKey>wid</uniqueKey>  这个改成对应的主键id
    
    
    
    
    添加分词器 
	<!--配置中文分词器使用的field-->
	<field name="ik" type="text_ik" indexed="true" stored="true"/><!-- 然后就显示 ik这个名字 -->
	<!-- ik分词器 -->
	<fieldType name="text_ik" class="solr.TextField">  
			<analyzer type="index" useSmart="false"
				class="org.wltea.analyzer.lucene.IKAnalyzer" />
			<analyzer type="query" useSmart="true"
				class="org.wltea.analyzer.lucene.IKAnalyzer" />
	</fieldType> 
	分词器下载下来后
	把这两个jar文件复制到solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib中
	然后在solr-7.4.0\server\solr-webapp\webapp\WEB-INF\目录下新建一个classes目录,把下面三个文件复制进去
   
   



6、创建dataimport.properties(定时增量更新索引)

​ 在\server\solr\创建核心core目录\conf 也会有一个一样的,但是,我们不是配置到这里

​ solr-7.5.0\server\solr 目录下,新建一个conf文件夹,注意啦,这个文件夹是我们手动新建的,如果没操作这一步,你就是操作不当。然后在conf目录下,新建dataimport.properties 文件

#################################################
#                                               #
#       dataimport scheduler properties         #
#                                               #
#################################################
 
#  to sync or not to sync
#  1 - active; anything else - inactive
syncEnabled=1
 

#修改成你所使用的core
syncCores=article


#这个一般都是localhost不会变
server=localhost

 
# solr 服务器端口  如果为空 默认为80
port=8983
 
#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
webapp=solr

 
#  URL params [mandatory]
#  remainder of URL
params=/dataimport?command=delta-import&clean=false&commit=true
 


#  schedule interval
#  number of minutes between two runs
#  [defaults to 30 if empty]
#这里是设置定时任务的,单位是分钟,也就是多长时间你检测一次数据同步,如果为空默认30分钟
interval=1

 
#  重做索引的时间间隔,单位分钟,默认7200,即1天; 
#  为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=7200
 
#  重做索引的参数
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true
 
#  重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
#  两种格式:2012-04-11 03:10:00 或者  03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=03:10:00

7、找到web.xml (增量更新监听器)

F:\solr-7.7.3\server\solr-webapp\webapp\WEB-INF  添加

   <listener>
	 <listener-class>
	    org.apache.solr.handler.dataimport.scheduler.ApplicationListener
	 </listener-class>
   </listener>
   
把下载的jar添加到(apache-solr-dataimportscheduler-1.4.jar)
把jar包复制放到F:\solr\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\lib 目录下

8、导入数据

全部导入

在这里插入图片描述

增量导入 ,只导入新增数据

在这里插入图片描述

9、清空数据

<delete><query>*:*</query></delete>
<commit/>

在这里插入图片描述

命令

启动
    .\solr start
    .\solr.cmd start
    
停止    
    .\solr stop -all
    .\solr stop.cmd -all
    
进入solr\server\solr目录创建核心core目录
    .\solr create -c hotel    # (hotel名称,自定义)命令创建一个hotel
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值