Solr部署流程

5 篇文章 0 订阅
1 篇文章 0 订阅

部署流程

说明,本教程缺一些截图,结合网上其他教程查缺补漏,应该可以完美部署。自觉写的还是比较详细。问题肯定是有的,例如缺截图。希望能帮到有需要的小伙伴。设置粉丝可读,完全是想屏蔽掉某些白嫖别人东西,(谢不用你说),还自命不凡的蠢货、杠精。你要是真有时间还不如去学点新东西,给别人挑刺、添堵,对不起只有一句滚粗。知道你技术好,我没求你看,你也别恶心我。借用抄袭王的一句话:你可以不喜欢,但请允许它的存在。我写这些东西完全不是为了给谁看,只是方便自己用时查询。所以,能帮到别人最好,帮不到也请不要打扰!谢谢

首先,下载solr 地址:https://lucene.apache.org/solr/downloads.html

演示版本为solr8.7

先确认环境的JAVA_HOME是否配好。如果没配好,solr启动会有问题。(可省略)

启动solr
[cmd] : solr start -p 8984
重启solr
[cmd]:solr restart -p 8984
停止 solr
[cmd]:solr stop -p 8984

访问localhost:8984如果启动成功,会自动跳转到solr的访问页面
solr启动成功

修改配置文件:修改3个配置文件

1.Solrconfig.xml搜索requestHandler 标签,在同一级别粘贴如下内容:

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

2.managed-schema在文件底部添加字段配置(对应数据库表字段)

<field name="test_name" type="text_ik" indexed="true" stored="true" />
<field name="test_geom" type="my_rpt" indexed="true" stored="true" />

3.添加data-config.xml
目录:solr-8.7.0\server\solr\test(你的solr-core目录下)

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="org.mysql.Driver" 					url="jdbc:mysql://localhost:3306/mysql" 
user="mysql" password="xxxxxx" />
    <document>
        <entity name="test" query="SELECT id,name,addr FROM public.test">
            <field column="id" name="id" />
            <field column="name" name="test_name" />
            <field column="addr" name="test_addr" />
        </entity>
    </document>
</dataConfig>

datasource标签配置数据源
Document配置表 field是表中字段名 name属性为别名

添加依赖jar包:添加4个jar包

1.数据库驱动
2.Solr导入数据依赖jar包:solr-dataimporthandler-8.7.0.jar
获取目录:solr-8.7.0\dist(根目录下的dist目录)
目标目录:solr-8.7.0\server\solr-webapp\webapp\WEB-INF\lib
3.ik分词jar包:ik-analyzer-8.3.0.jar
下载地址:https://github.com/magese/ik-analyzer-solr

创建solr_core

主要有两种方式:
1.创建目录,拷贝配置文件
2.命令行(cmd)创建(推荐):
solr create -c 名字

配置中文分詞插件

插件下载地址:https://github.com/magese/ik-analyzer-solr/releases/tag/v8.3.0

放置在指定目录:solr-8.7.0\server\solr-webapp\webapp\WEB-INF\lib
在WEB-INF目录下创建classes目录,拷贝插件包内的配置文件
修改你创建的solr_core目录下managed-schema配置文件
举例:solr-8.7.0\server\solr\test\conf
这里的test是我定义的solr_core的名字,即当前项目使用的solr_core是test
managed-schema配置文件,新增内容:

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

验证安装是否成功:

-----截图-----

为什么要安装中文分词插件?
因为solr是外国人开发的,开发者不熟悉中文词汇的语境,所以没有办法完成分词。
默认的分词插件只会将中文一个字一个字的隔断,这样根本不能完成你想使用它的效果。

数据导入

数据导入需要注意的点是:在数据导入的同时,也是solr为数据创建索引的时候。所以数据导入时一定要注意,配置文件的字段一定要选择中文分词,否则会使中文分词失效。

1.准备data-config.xml文件(生成/手写)
2.使用界面dataimport工具进行导入

SpringBoot集成
1.修改POM文件,添加solr依赖

<!-- solr -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>

2.修改springboot配置文件:
Properties:

Yml:

spring:
  data:
    solr:
      host: http://127.0.0.1:8984/solr

3.具体业务代码:

备注:
一、Solr基础概念
二、Solr基础语法
删:清空数据

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

三、单机测试代码

public class SolrUtil {

	private static String url = "http://localhost:8984/solr/gis";
	private static SolrClient solrClient = new HttpSolrClient.Builder(url).build();
	
	public static void main( String[] args ) throws IOException{
		//构建查询
        SolrQuery solrQuery = new SolrQuery(); // 创建并设置关键词过滤条件
        solrQuery.set("q", "name=\"磊\"");
        
        // 4、创建QueryResponse数据接收对象
        QueryResponse resp = null; // 定义接受句柄
        try {
            resp = solrClient.query(solrQuery);
            
            SolrDocumentList solrDocumentList = resp.getResults();
            for (SolrDocument solrDocument : solrDocumentList) {
				String name = solrDocument.get("name").toString();
				System.out.println( "当前记录-- name----"  +name);
				System.out.println( "当前记录-- id----"  +solrDocument.get("id").toString());
			}
            //取查询结果总记录数
            System.out.println("查询结果总记录数:" + solrDocumentList.getNumFound());
        } catch (SolrServerException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
			if(solrClient != null){
				solrClient.close();
			}
		}
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值