Spring Boot + Solr全文检索微服务简易集成

ROS教程(四):RVIZ使用教程(详细图文) 前言 根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ 阅读详情

作者:JasonGofen

链接:https://www.jianshu.com/p/95869ade37b3

本文内容主要讲解Solr 7.7.1 环境搭建后使用Spring boot 2.1.3集成SolrJ实现简易全文检索微服务,对于Solr与Spring boot的介绍内容网上资料很多,本文不再赘述。

关于本文内容所涉及资源在最后会给大家统一都列出来。

一、环境说明

Spring boot 结合 SolrJ 实现对Solr Server的访问是非常简单的,它们相互之间的关系如下图所示。

主体实现是通过在Spring boot微服务中集成SolrJ,配置好Solr Server参数,调用SolrJ中的CRUD API实现请求Solr Server端进行添加、修改、删除索引和查询的操作。至于如何结合现有业务系统,我们后面介绍。

图1 简易环境说明

下面以最简单快速的方式实现全文检索基础CRUD功能。

二、搭建Solr 7.7.1 Server端

因自己的电脑硬盘空间满了没装Linux虚拟机,就以Windows为例安装Solr Server端了。其实总体而言两个系统对Solr Server端的操作类似,各位看官举一反三就好,就两种系统部署Solr的不同下面也会做相应的提及。

  • 已配置好的Solr 7.7.1下载:

https://pan.baidu.com/s/11s18oJVKpEVc-AmZO1xkgA


我们首先来了解一下Solr的常见命令:

  • 启动:

./solr start

  • 关闭:

./solr stop -all

  • 重启:

./solr restart

  • 创建Core:

./solr create -c YourCoreName -d _default

  • 删除Core:

./solr delete -c YourCoreName

关于Solr更细致的内容,大家可以参阅下方链接:

  • Solr 官网

https://lucene.apache.org/solr/

  • Solr API官方文档

http://lucene.apache.org/solr/7_7_1/solr-solrj/index.html

  • Solr 中文文档(译版)

https://www.w3cschool.cn/solr_doc/solr_doc-t3642fkr.html


要想搭建Solr Server拢共分3步:


步骤1:部署Solr 7.7.1

步骤1-1:下载安装JDK和Solr Server端

  • 下载安装JDK 8:JDK的安装在这就不说了,网上有很多资料。\

Java SE Development Kit 8 下载

  • 下载Solr 7.7.1压缩包:请注意Linux下载solr-7.7.1.tgz,Windows下载solr-7.7.1.zip\

http://archive.apache.org/dist/lucene/solr/

步骤1-2:解压Solr-7.7.1压缩包

  • Windows下解压压缩包到对应的目录,我的路径是:

C:\myworking\solr-7.7.1

  • Linux下使用 tar 命令解压Solr压缩包:

tar zxvf solr-7.7.1.tgz -C /myworking

步骤1-3:进入bin目录运行Solr
Windows与Linux操作solr的命令都是一样的,但都需要进入到Solr的bin目录下,我的目录是C:\myworking\solr-7.7.1\bin。linux的目录使用cd命令进入即可。

  • 进入的到bin目录下执行 启动 命令:

./solr start

  • 启动完成后的控制台截图:

图2 控制台Solr启动完成图

  • 随后我们访问http://localhost:8983即能看到Solr Server端的Web页面了

图3 Solr Server端 Web首页

步骤1-4:创建Core

Solr Core的创建有两种方式,第一种是通过命令行的方式,第二种是在Solr Web 首页中创建。

个人比较推荐第一种,原因有二,一是方便快捷在命令行一句话搞定,Ctrl+c Ctrl+v齐活儿,不用在页面上点来点去还得敲文字,二是所在公司大牛在实践过后说是如果采用的第二种方式创建出的Core会有一些问题。本着听人话,吃饱饭的态度就采用第一种吧~ ~*大家可以实践一下然后分享给我哦。*当然两种方式还是要介绍下的。

  • 使用命令行创建Core

我们只需要进入到上述的bin目录,复制以下命令即可创建Core,命令中的TestCore为名称可以自行替换:

./solr create -c TestCore -d _default

  • 使用Web端创建Core

上述图3中左侧的列表第3个Core Admin菜单项,点开后就明白怎么做了。

  • 在Web端查看TestCore

图4 选择TestCore

图5 TestCore详情图


步骤2:配置IK-Analyzer中文分词

介绍性的内容还是不罗列了,大家自己百度吧。Ik-Analyzer分词据说是国内最好用的中文分词,大部分人都用这个。目前Solr-7.7.1也自带了一个中文分词,具体的对比我没做过,等装完IK后大家回来可以进行下对比。同时欢迎分享给我哦。

  • IK分词GitHub:

https://github.com/magese/ik-analyzer-solr7

  • 动态词库自动加载:

https://github.com/liang68/ik-analyzer-solr6

http://www.cnblogs.com/liang1101/articles/6395016.html

PS:关于动态词库自动加载,这个大家看一下下面这段引用描述后视项目情况选择要不要去研究下。

如果只是在我们原有的业务系统中简单集成Solr,那暂时没必要去了解动态词库自动加载。如果像商城等业务系统中,对于搜索模块是业务系统的核心之一,那么简单使用IK可能无法达到线上使用的要求。在IK分词器中默认是一次启动将主词库、停用词以及扩展词库全部加载完毕,后续如果再想要增加额外的扩展词,就必须得修改对应的扩展词表重新打包上传并重启服务方能生效,这种方式不适合应用与线上服务。那么到底如何实现这种无缝扩充词库呢?大家可以看看上面的博客。

步骤2-1:配置IK-analyzer jar包和词库

首先需要大家下载jar包和源码,我们下面需要放到Solr Server端对应的目录下。

  • IK分词jar包:

https://search.maven.org/remotecontent?filepath=com/github/magese/ik-analyzer/7.7.1/ik-analyzer-7.7.1.jar

  • IK分词GitHub源码:

https://github.com/magese/ik-analyzer-solr7

  1. 将下载好的ik-analyzer-7.7.1.jar包放入Solr服务的 webapp\WEB-INF\lib目录下,我的目录全路径是:

C:\myworking\solr-7.7.1\server\solr-webapp\webapp\WEB-INF\lib

  1. 将下载好的ik-analyzer-solr7-master源码下的src\main\resources目录中的文件***(如下)***,放入到webapp\WEB-INF\classes目录下:

① IKAnalyzer.cfg.xml        扩展配置文件
② ext.dic                   扩展词库
③ stopword.dic              停止词库
④ ik.conf                   动态词库配置文件
⑤ dynamicdic.txt            动态词库

我的目录全路径是:

C:\myworking\solr-7.7.1\server\solr-webapp\webapp\WEB-INF\classses

  • 关于词库中同义词库、扩展词库、停止词库的介绍,可以看下面的blog:

https://blog.youkuaiyun.com/zcl_love_wx/article/details/52092894

步骤2-2. 配置TestCore的server\solr\TestCore\conf\managed-schema,添加IK分词器,示例如下:

  <!-- 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>

*PS:放在<schema name="default-config" version="1.6">标签下。*同时在该标签下我们还需要配置field,请看步骤3。


步骤3:配置field

Solr filed域的配置极为重要,filed的配置会影响到索引的创建和查询出的结果展示。

<!-- Solr Test search -->
<field name="title" type="text_ik" indexed="true" stored="true" required="true" multiValued="true" />
<field name="content" type="text_ik" indexed="true" stored="true" required="true" multiValued="true" />
<field name="filetype" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="uploadtime" type="string" indexed="false" stored="true" required="true" multiValued="false" />
<!-- 复制域,可以将多个Field复制到一个Field中,以便进行统一的检索,multiValued属性需要设置成true -->
<copyField source="content" dest="title" />

name:查询时的名称
type:这个是之前定义的FieldType的名称,在这使用的ik分词
indexed:是否索引(true/false)
stored:是否存储(是否将索引结果存储到索引库)
multivalued:是否多值(一般配合copyField使用)

  • 动态filed

在定义filed时,可能会随着业务主线作出变更,那么每次在managed-schema更改filed后,还需重启Solr也是个麻烦事儿。那么在生产环境如此操作可能显得不是那么理想了。那么可以在变更时使用类似通配符的方式建立动态filed,比如name="title"可以写成name="fl_*",这样只要以fl_开头的索引都可以被建立。


步骤4:重启Solr服务,测试ik分词

这里请注意Analyse Fieldname / FieldType:右边的下拉列表,需要去选中ik分词text_ik。我们可以看到输入中华人民共和国关键字后所出现的分词效果。

图6 分词效果图

至此我们的Solr Server端基础版就搭建完成了,下面开始使用Spring boot结合SolrJ进行全文检索微服务的搭建。

三、Spring boot 微服务实现

Spring boot的基础知识不讲解了,下面我们采用Spring boot 2.1.3结合SolrJ 7.7.1完成全文检索微服务的实现。

  • 下载源码

https://github.com/JasonGofen/SolrProject


步骤1:在本地准备将要建立索引的文件

准备两个doc文档,写入一些自定内容,放到指定目录下,当然也不一定非得要doc。以下是我准备的两个文件:

C:\solrfile\data\鹅鹅鹅.pdf
C:\solrfile\data\静夜思.docx


步骤2:搭建Spring boot项目
  • 创建项目,在pom.xml引入SolrJ的Maven依赖

<!-- SolrJ 7.7.1 API -->
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>7.7.1</version>
</dependency>
<!-- 解析文档内容工具包 -->
<dependency>
    <groupId>org.apache.tika</groupId>
    <artifactId>tika-core</artifactId>
    <version>1.9</version>
</dependency>

  • 目录结构

├── src
│   └── main
│       ├── java
│       │   └── com.jasongofen
│       │       ├── client
│       │       │   └── SolrClient.java             // Solr客户端
│       │       ├── config
│       │       │   ├── CorsConfig.java             // 跨域配置文件
│       │       │   └── SolrConfigProperties.java   // yml属性实例化配置文件
│       │       ├── test
│       │       │   └── SolrCURDTest.java           // Solr API调用测试示例
│       │       ├── util
│       │       │   ├── ConvertUtil.java            // 自定义转换工具类
│       │       │   └── TikaUtil.java               // 提取文档内容工具类
│       │       └── SolrProjectApplication.java     // Spring boot启动类
│       └── resources
│           ├── application.yml                     // 项目配置
│           ├── banner.txt                          // banner配置
│           └── logback-spring.xml                  // 日志配置
├── pom.xml                                         // 依赖配置
└── README.md                                       // 项目帮助文档

  • 配置application.yml中solr节点下的属性值***(必须)***

# solr配置
solr:
  # Solr Server端地址
  server: localhost:8983    # 设置你的Solr Server访问地址
  # Solr Core名称
  core: TestCore            # 设置你的Solr Core名称
  # 上面准备的文档的所在本地路径
  dir: C:\solrfile\data\    # 设置你的需要建立索引的文件所在目录


步骤3:运行项目

下面就可以运行项目了,SolrJ API调用请看以下内容。
未完待续


SolrJ API调用说明

基础的API调用代码在项目目录src\main\java\com.jasongofen.test\SolrCURDTest.java文件中,该java是一个Controller可以以http请求的方式模拟其他业务系统调用过程。

  • 添加、修改索引
    添加索引时首先使用HttpSolrClient与Solr Server建立连接,随后解析需要建立索引的文件*(至于需要结合现有的业务系统是采用http ftp等方式从各自的文件Server中获取,还是另外的方式,请结合当前项目业务需要作扩展即可)*,接着把解析出的文件数据放到对应的索引位置,在设置索引内容时id字段是必须要设置的且全局唯一,最后提交索引并关闭SolrClient。
    修改索引时,如果id在索引库中已存在,则执行更新操作。

@GetMapping("/Add")
public void solrAdd() throws Exception {

    // 设置文件路径
    List<String> files = new ArrayList<>();
    files.add("鹅鹅鹅.pdf");
    files.add("静夜思.docx");
    // 获取Solr客户端
    HttpSolrClient solr = SolrClient.getClient(solrConfigProperties.getServer());

    String prefix = "";
    for (String fi : files) {
        System.out.println(fi);
        // 取后缀名
        prefix = ConvertUtil.getFileSufix(fi);
        if (prefix.equalsIgnoreCase("txt") ||
                prefix.equalsIgnoreCase("docx") ||
                prefix.equalsIgnoreCase("doc") ||
                prefix.equalsIgnoreCase("pdf")) {

            String[] fileInfo = fi.split("\\.");
            String content = "";
            // 获取文件流,取出文件内容
            InputStream inputStream = new FileInputStream(solrConfigProperties.getDir() + fi);
            if (prefix.equals("txt")) {
                content = TikaUtil.txt2String(inputStream);
            } else if (prefix.equals("docx") || prefix.equals("doc") || prefix.equals("pdf")) {
                content = TikaUtil.doc2String(inputStream);
            } else {
                inputStream.close();
            }
            // 添加索引
            SolrInputDocument solrDoc = new SolrInputDocument();
            String formatDate = ConvertUtil.formatDate();
            // 执行添加 ps:如果id相同,则执行更新操作
            solrDoc.addField("id", UUID.randomUUID().toString().toUpperCase().replace("-", ""));
            solrDoc.addField("title", fileInfo[0]);
            solrDoc.addField("content", content);
            solrDoc.addField("filetype", prefix);
            solrDoc.addField("uploadtime", formatDate);
            solr.add(solrConfigProperties.getCore(), solrDoc);

        } else {
            continue;
        }
    }
    // 提交
    solr.commit(solrConfigProperties.getCore());
    solr.close();
}

  • 查询

查询时因返回的是JSON串,并未做前端页面展示,请根据业务需求自行定制。

@GetMapping("/Query")
public SolrDocumentList solrQuery() throws Exception {

    HttpSolrClient solrClient = SolrClient.getClient(solrConfigProperties.getServer());
    // 定义查询条件
    Map<String, String> params = new HashMap<String, String>();
    params.put("q", "*:*");
    SolrParams mapSolrParams = new MapSolrParams(params);
    //执行查询 第一个参数是collection,就是我们在solr中创建的core
    QueryResponse response = solrClient.query(solrConfigProperties.getCore(), mapSolrParams);
    // 获取结果集
    SolrDocumentList results = response.getResults();
    for (SolrDocument result : results) {
        // SolrDocument 数据结构为Map
        System.out.println(result);
    }
    solrClient.close();
    return results;

}

  • 删除索引

需要删除索引时,根据id去删除即可。

@GetMapping("/Delete")
public void solrDelete(@RequestParam("id") String id) throws Exception {

    HttpSolrClient solrClient = SolrClient.getClient(solrConfigProperties.getServer());
    // 通过id删除 执行要删除的collection(core)
    solrClient.deleteById(solrConfigProperties.getCore(), id);
    // 还可以通过查询条件删除
    // solrClient.deleteByQuery(solrConfigProperties.getCore(), "查询条件");
    // 提交删除
    solrClient.commit(solrConfigProperties.getCore());
    solrClient.close();

}


本文所用资源汇总:

  • 本文已配置的 Solr7.7.1
    https://pan.baidu.com/s/11s18oJVKpEVc-AmZO1xkgA

  • 本文源码
    https://github.com/JasonGofen/SolrProject

  • Solr 官网
    https://lucene.apache.org/solr/

  • Solr API 官方文档
    http://lucene.apache.org/solr/7_7_1/solr-solrj/index.html

  • Solr 中文文档(译版)
    https://www.w3cschool.cn/solr_doc/solr_doc-t3642fkr.html

  • JDK 8
    Java SE Development Kit 8 下载

  • Solr 7.7.1 压缩包
    http://archive.apache.org/dist/lucene/solr/

  • IK 分词 jar 包
    https://search.maven.org/remotecontent?filepath=com/github/magese/ik-analyzer/7.7.1/ik-analyzer-7.7.1.jar

  • IK 分词 GitHub 源码
    https://github.com/magese/ik-analyzer-solr7

  • 动态词库自动加载
    https://github.com/liang68/ik-analyzer-solr6
    http://www.cnblogs.com/liang1101/articles/6395016.html

  • 同义词典、扩展词典、停止词典介绍 Blog
    https://blog.youkuaiyun.com/zcl_love_wx/article/details/52092894

  • 创建 Spring boot 项目的网址
    https://start.spring.io/

TIA博途中通过UDT实现IO地址映射到DB块中的具体方法 阅读详情

相关推荐

【完美解决】Anaconda3安装后缺失大量文件,没有scripts、Library等目录

Anaconda3是官网下载的:https://www.anaconda.com/distribution/#download-section 我选择的是64位python 3.7的版本。 问题出现及现象: 我自己选择了一个D盘的目录D:\Tools\Anaconda3进行安装,装完后发现conda list命令无法执行,首先都到的是配置环境变量,然后发现安装目录下缺失大量文件(如下图)...

android之行 3万+

9.Spring Boot整合Solr

增加删除修改都差不多,增加和修改可以通过add(SolrInputDocument)和addBean,根据主键是否存在来判断是新增还是修改,删除可以通过主键或者条件进行删除。实体类上的注解@field和@SolrDocument是为了QueryResponse.getBeans()能转化成相关实体类,不然无法识别。主键是在schema中配置的,默认有id字段做主键,也可以自定义主键,在schema中配置。通过add方法加了几个demo后,可以在solr管理页面的查询出查看添加的内容。

相互学习 共同进步 896

高德地图JS API私有化部署实战:从数据爬取到内网集成

本文详细介绍了高德地图JS API私有化部署的完整流程,涵盖从地图瓦片数据爬取、JS API离线化改造到内网项目集成的实战步骤。重点解决了在封闭内网环境中实现地图功能的核心难题,并提供了Vue.js项目中的具体集成代码与调试技巧,帮助开发者在离线环境下构建稳定可靠的地图应用。

weixin_29062255的博客 319

SpringBoot(11)SpringBoot中搭建全文检索引擎Solr使用详解

1. Solr介绍 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。 Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 使用Solr 进行创建索引和搜索索引的实现方法很简单,如下: * 创建索引:客户端(可以...

WilsonSong1024的博客 1万+

PS/2鼠标接口协议

一、PS/2鼠标接口        PS/2接口用于许多现代的鼠标和键盘,由IBM最初开发和使用。物理上的PS/2接口有两种类型的连接器:5脚的DIN和6脚的MINI-DIN。        二、鼠标的接口协议原理             PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。但是在相互传输中 ,主机是拥有总线控制权的

Ant's home 1万+

开关电源的纹波和噪声电压-抑制方法

开关电源(包括AC/DC转换器、DC/DC转换器、AC/DC模块和DC/DC模块)与线性电源相比较,最突出的优点是转换效率高,一般可达80%~85%,高的可达90%~97%;其次,开关电源采用高频变压器替代了笨重的工频变压器,不仅重量减轻,体积也减小了,因此应用范围越来越广。 但开关电源的缺点是由于其开关管工作于高频开关状态,输出的纹波和噪声电压较大,一般为输出电压的1%左右(低的为输出电压的0.5%左右),最好产品的纹波和噪声电压也有几十mV;而线性电源的调整管工作于线性状态,无纹波电压,输出的噪声电压也

ltqdxl的博客 1万+

Spring Boot整合Solr

安装Solr服务 1.下载地址:https://www.apache.org/dyn/closer.lua/lucene/solr/8.1.1/solr-8.1.1.zip 2.solr8.0的简单搭建(一):https://www.cnblogs.com/ITDreamer/p/10661873.html 3.solr8.0 ik中文分词器的简单配置(二):https://www.cnblogs...

wxj1079099010的博客 217

Yolov2 训练时anchor是如何使用的?build_target

0.简略描述 1.将真值检测框变换到特征图尺度上 2.计算以特征图每个网格中心为中心点时所有锚框与真值检测框的交并比 3.取与真值检测框交并比最大的锚框的id,及真值检测框中心所在cell的id,有此,可将真值检测框与预测结果对应起来 4.计算位置回归损失,置信度损失,分类损失 1,网络的输出 图1 yolov2 网络对于检测框位置大小的输出是: 对于1个batch网络的输出的shape为[batch_size, H*W*num_anchors, 5+num_classes], 其中: num_

机器人视觉感知 2818

Spring Boot + Solr

一.首先下载solr 下载路径:http://archive.apache.org/dist/lucene/solr/8.5.0/ 中文分词器下载:在中央仓库中下载对应的版本 ik-analyzer-8.5.0.jar 二.本地安装solr 1.解压solr压缩包 2.进入安装目录(如:E:\config\solr\solr-8.5.0\server\solr),创建自己的索引库(如:文件夹myInventoryCore) 3.添加索引库的配置文件,将E:\config\solr\solr-8.5.0\s

weixin_45267345的博客 3291

YOLOv8交通管理 详细解释及代码完整示例

YOLOv8在交通管理中的应用及代码实现 摘要:本文详细介绍了YOLOv8在交通管理领域的应用场景,包括车辆检测、违规行为识别和行人安全预警等。文章提供了完整的Python代码示例,展示了如何使用YOLOv8进行交通对象检测和车辆计数统计。代码包含模型加载、对象检测、结果可视化等功能模块,并给出了性能优化和功能扩展建议。该实现基于Ultralytics框架,支持多种YOLOv8模型选择,可根据实际需求调整模型大小和检测参数。

u010117029的博客 153

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

算法大师! 3059

SpringBoot整合Solr[超详细版]

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。 Solr 搜索只需要发送 HTTP GET 请求,然后对 So

wang20000102的博客 3668

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 674

Spring Boot + Solr 全文检索微服务简易集成

点击上方Java后端,选择设为星标优质文章,及时送达作者:JasonGofen链接:https://www.jianshu.com/p/95869ade37b3本文内容主要讲解Sol...

公众号:Java后端 334

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

微服务集成cas_Spring Boot + Solr 全文检索微服务简易集成

优质文章,及时送达作者:JasonGofen链接:https://www.jianshu.com/p/95869ade37b3本文内容主要讲解Solr 7.7.1 环境搭建后使用Spring boot 2.1.3集成SolrJ实现简易全文检索微服务,对于Solr与Spring boot的介绍内容网上资料很多,本文不再赘述。关于本文内容所涉及资源在最后会给大家统一都列出来。一、环境说明Spring ...

weixin_42537142的博客 90

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

springboot 微服务_Spring Boot + Solr 全文检索微服务简易集成

点击上方Java后端,选择设为星标优质文章,及时送达作者:JasonGofen链接:https://www.jianshu.com/p/95869ade37b3本文内容主要讲解Solr 7.7.1 环境搭建后使用Spring boot 2.1.3集成SolrJ实现简易全文检索微服务,对于Solr与Spring boot的介绍内容网上资料很多,本文不再赘述。关于本文内容所涉及资源在最后...

weixin_39723655的博客 194

springboot 微服务_Spring Boot + Solr全文检索微服务简易集成

本文内容主要讲解Solr 7.7.1 环境搭建后使用Spring boot 2.1.3集成SolrJ实现简易全文检索微服务,对于Solr与Spring boot的介绍内容网上资料很多,本文不再赘述。 关于本文内容所涉及资源在最后会给大家统一都列出来。一、环境说明Spring boot 结合 SolrJ 实现对Solr Server的访问是非常简单的,它们相互之间的关系如下图所示。主体实现是通过在S...

weixin_39976499的博客 297

微服务集成cas_Spring Boot + Solr全文检索微服务简易集成

作者:JasonGofen链接:https://www.jianshu.com/p/95869ade37b3本文内容主要讲解Solr 7.7.1 环境搭建后使用Spring boot 2.1.3集成SolrJ实现简易全文检索微服务,对于Solr与Spring boot的介绍内容网上资料很多,本文不再赘述。关于本文内容所涉及资源在最后会给大家统一都列出来。一、环境说明Spring boot...

weixin_32334681的博客 144

Spring Boot Demo完全指南:从入门到精通的Spring学习实战项目

Spring Boot Demo是一个全面的Spring学习示例实战项目,涵盖Spring Boot、Spring Cloud和Spring Security等核心技术,通过丰富的代码示例和实战案例,帮助开发者快速掌握Spring生态系统的核心功能和最佳实践。无论是Spring新手还是有一定经验的开发者,都能从这个项目中获得实用的知识和技能。 ## 为什么选择Spring Boot Demo?

gitblog_01403的博客 339

企业门户网站java源码_Spring cloud微服务架构前后端分离博客系统,Vue+boot源码分享...

一个基于微服务架构的前后端分离博客系统。前台使用Vue + Element , 后端使用spring boot + spring cloud + mybatis-plus进行开发,使用 Jwt + Spring Security做登录验证和权限校验,使用ElasticSearch和Solr作为全文检索服务,使用Github Actions完成博客的持续集成,文件支持上传七牛云。项目最新源码学习获取...

weixin_39942037的博客 1065

Spring Boot电商毕业设计:从功能堆砌到价值创造的深度实践指南

在软件开发领域,高并发处理与微服务架构是构建现代电商系统的核心技术挑战。理解高并发原理,如通过缓存、消息队列实现流量削峰与数据一致性,能有效提升系统稳定性与扩展性。微服务架构则通过服务拆分与治理,解决了单体应用在复杂业务场景下的部署与维护难题。这些技术的工程价值在于,它们使系统能够支撑海量用户访问,并实现敏捷迭代。在电商应用场景中,秒杀系统、个性化推荐等典型需求,正是这些技术的用武之地。本文聚焦于如何将Spring Boot与这些热点技术结合,通过垂直场景切入与清晰的技术叙事线,指导开发者超越基础CRUD,

weixin_34253126的博客 657

Spring Boot : 微服务应用监控 Spring Boot Actuator 详解

引言 在当前的微服务架构方式下,我们会有很多的服务部署在不同的机器上,相互是通过服务调用的方式进行交互,一个完整的业务流程中间会经过很多个微服务的处理和传递,那么,如何能知道每个服务的健康状况就显得尤为重要。 万幸的是 Spring Boot 为我们提供了监控模块 Spring Boot Actuator ,本篇文章将和大家一起探讨一些 Spring Boot Actuator 一些常见用法方便我们在日常的使用中对我们的微服务进行监控治理。 Spring Boot Actuator 帮我们实现了对程序内

Xiaohong0716的博客 1473

erlang rabbitmq源码解析_spring boot基于微服务架构的前后端分离博客系统源码免费赠送...

加关注然后私信 “蘑菇博客”获取源码一个基于微服务架构的前后端分离博客系统。前台使用 Vue +Nuxt + Element , 后端使用spring boot + spring cloud + mybatis-plus进行开发,全文检索使用Solr,为支持SEO优化博客门户采用Nuxt.js框架,使用Jwt+Spring security做登录权限校验。项目介绍蘑菇博客,一个基于微服务架构的前后...

weixin_30444625的博客 157

springboot项目练习三 配置solr 抽取公共CRUD方法

编写solr的配置类完成solrClient的注入 编写操作solr的常用操作封装CRUD操作 编写controller类完成导入数据的程序入口 1  新建solrContext.java文件 package com.gc.config; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.clie...

Master_chaoAndQi的博客 797

Spring Boot 整合 Solr 设置项目启动时的默认连接路径

&lt;dependency&gt; &lt;groupId&gt;org.apache.solr&lt;/groupId&gt; &lt;artifactId&gt;solr-solrj&lt;/artifactId&gt; &lt;version&gt;7.4.0&lt;/version&gt; &lt;/dependency&gt; 问题描述:

qq_38836118的博客 1362
上一篇: Spring 为啥默认把bean设计成单例的?这篇讲的明明白白的
下一篇: ElasticSearch 使用 Logstash 从 MySQL 中同步数据
Java思维导图
博客等级 码龄10年 306粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值