Linux搭建Solr检索

下载solr

官方下载地址
点击下载linux版本

开始安装

  1. 上传下载的solr-9.2.1.tgz包到/usr/local下;
  2. 解压
tar -zxvf solr-9.2.1.tgz
  1. 启动服务
// 切换到bin目录
cd /usr/local/solr/bin
// 启动服务
./solr start -force
// 停止服务
./solr stop -all
  1. 可能存在问题
    访问IP:8983/solr,发现拒绝连接问题
    linux 启动solr服务提示Your open file limit is currently 1024
    编辑/etc/security/limits.conf文件,在最后追加如下代码保存。
* hard nofile 65535
* soft nofile 65535
* hard nproc 65535
* soft nproc 65535

创建实例

在/usr/local/solr/bin下执行命令

./solr create -c 实例名称 -force

页面刷新查看
在这里插入图片描述

mysql数据导入solr

  1. 导入jar包
    将源文件下dist目录下的两个solr-dataimporthandler-xxxxx.jar包,以及一个mysql驱动包复制
    到/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib 目录中。
  2. 创建数据库配置文件
    在/usr/local/solr/server/solr/实例名 目录下创建data-config.xml文件
<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://ip:3306/数据库名称?useUnicode=true&amp;characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false&amp;serverTimezone=GMT%2B8" user="用户名" password="密码" />
    <document>
        <entity name="policy"
            query="SELECT
					id,
					title,
					date,
					policy_number,
					policy_source,
					preview,
					content,
					category,
					is_recommend,
					clicks,
					search_volume,
					create_by,
					create_time,
					update_by,
					update_time,
					remark 
				FROM
	t_policy">
		<!-- 数据库字段映射solr字段 --> 
		<field column="id" name="id" />
		<field column="title" name="title" />
		<field column="date" name="date" />
		<field column="policy_number" name="policyNumber" />
		<field column="policy_source" name="policySource" />
		<field column="preview" name="preview" />
		<field column="category" name="category" />
		<field column="is_recommend" name="isRecommend" />
		<field column="clicks" name="clicks" />
		<field column="search_volume" name="searchVolume" />
		<field column="create_by" name="createBy" />
		<field column="create_time" name="createTime" />
		<field column="update_by" name="updateBy" />
		<field column="update_time" name="updateTime" />
		<field column="remark" name="remark" />
        </entity>
    </document>
</dataConfig>

编辑/usr/local/solr/server/solr/实例名/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>
  1. 数据导入
    配置完成后重新启动solr,导入数据。
    在这里插入图片描述

ik中文分词器配置

  1. ik分词器下载
    链接:https://pan.baidu.com/s/1RWv-aThkpz2vgL1wCj0T7Q
    提取码:ypmn
  2. 配置
    在/usr/local/solr/server/solr-webapp/webapp/WEB-INF目录下创建classes文件;
    用解压文件打开分词器jar包将这五个文件复制到创建的classes目录下。
    在这里插入图片描述
    将分词器jar包放入/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib目录下;
    编辑/usr/local/solr/server/solr/实例名/conf目录下managed-schema文件,在最后追加如下代码。
<!-- ik中文分词器 -->
	<fieldType name="text_ik" class="solr.TextField">
		<analyzer type="index">
		  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="false"/>
		  <filter class="solr.LowerCaseFilterFactory"/>
		</analyzer>
		<analyzer type="query">
		  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="true"/>
		  <filter class="solr.LowerCaseFilterFactory"/>
		</analyzer>
	</fieldType>

配置业务字段
需要用到分词的字段,type属性改为text_ik。
在这里插入图片描述

<!-- 对象字段映射 -->
	<field name="title" type="text_ik" indexed="true" stored="true"/>
	<field name="date" type="pdate"/>
	<field name="policyNumber" type="string"/>
	<field name="policySource" type="string"/>
	<field name="preview" type="string"/>
	<field name="content" type="text_ik" indexed="true" stored="true"/>
	<field name="category" type="pint"/>
	<field name="isRecommend" type="boolean"/>
	<field name="clicks" type="pint" indexed="true" stored="true"/>
	<field name="searchVolume" type="pint" indexed="true" stored="true"/>
	<field name="createBy" type="string"/>
	<field name="createTime" type="pdate"/>
	<field name="updateBy" type="text_ik"/>
	<field name="updateTime" type="pdate"/>
	<field name="remark" type="string"/>
  1. 测试
    重启solr;
    选择添加的ik中文分词器执行。
    在这里插入图片描述

删除全部数据

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值