技术标签: spring boot elasticsearch 实战项目 搜索引擎
本文章通过实战记录相关问题以及提供解决方案。
公众号:恩故事还在继续
为了完成 Spring Boot 与 Elasticsearch 整合需要安装下面工具
1. springboot 2.1.5
2. elasticsearch 6.4.3
3. elasticsearch ik 6.4.3
4. postman (这个任意)
Elasticsearch 官网
Elasticsearch 6.4.3 下载链接
配置环境变量
点击我的电脑 -> 高级系统设置 -> 环境变量 -> 系统变量 -> Path
D:\elasticsearch-6.4.3\bin
修改解压后 config 文件下的 elasticsearch.yml 自定义下面三个变量的属性
cluster.name: nowcode
如果不修改默认是 Linux 的地址
path.data: d:\data\elasticsearch_data
path.logs: d:\data\elasticsearch_log
解压 elasticsearch ik 到指定目录 (这里有个小坑需要注意)
我们首先在 elasticsearch 解压的目录下面找到 D:\elasticsearch-6.4.3\plugins
在 plugins 目录下面新建 ik 文件夹
然后将 elasticsearch ik 解压到 plugins 文件夹下
注意: 千万不要将 elasticsearch-analysis-ik-6.4.3 这个文件夹解压到 ik 里面
我们只需要 elasticsearch-analysis-ik-6.4.3 下一级的内容解压到 ik 即可
首先,在 D:\elasticsearch-6.4.3\bin 打开 elasticsearch.bat
然后, windows + R 输入 cmd
分别使用下面这些命令进行测试:
查看健康状态
curl -X GET “localhost:9200/_cat/health?v“
查看节点
curl -X GET “localhost:9200/_cat/nodes?v“
查看索引
curl -X GET "localhost:9200/_cat/indices?v"
新建索引
curl -X PUT "localhost:9200/test"
删除索引
curl -X DELETE "localhost:9200/test"
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-elasticsearch -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
在 application.properties 配置 ElasticserachProperties:
spring.data.elasticsearch.cluster-name=nowcoder
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300
原因是 netty 启动冲突问题, 需要在 CommunityApplication 编写 init()
package org.example.community;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import javax.annotation.PostConstruct;
@SpringBootApplication
public class CommunityApplication {
@PostConstruct
public void init(){
// 解决 netty 启动冲突问题
// see Netty4Utils.setAvailableProcessors()
System.setProperty("es.set.netty.runtime.available.processors", "false");
}
public static void main(String[] args) {
SpringApplication.run(CommunityApplication.class, args);
}
}
按照课程流程走的话 elasticsearch 版本和 elasticsearch ik 都是 6.4.3
其次就是Springboot 版本必须是 2.1.5, 高版本的话建议将 Springboot 降低到低版本
如果上面版本太高或者太低会出现各种不兼容的问题
具体做法如下所示:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- <version>2.5.12</version>-->
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
在 pom.xml 文件里面将原来的 version 版本修改为 2.1.5 ,然后 maven 会自动将 2.1.5 需要的配置添加进去,我们这时候需要等待一会,接着我们这样操作:
在 IDEA 中点击 File -> invaildate and restart
当编译器再次启动的时候就可以了。
1. SpringBoot 整合 Elasticsearch
文章浏览阅读252次。基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具(Mongo2Es) 基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具支持一对一,一对多,多对一和多对多的数据传输方式.一对一 - 一个mongodb的collection对应一个elasticsearch的index之间的数据同步一对多 - 一个mong..._旅行者mongoose 2e
文章浏览阅读64次。你问的是两个组成部分:>网络爬虫>基于Lucene的自动索引器首先是勇气:去过那里,做到了.从制作自己的角度来看,我将单独处理这两个组件,因为我不相信你可以使用Lucene做你要求的事情,而不会真正理解下面发生了什么.网络爬虫因此,您有一个网站/目录,您希望“抓取”以收集特定资源.假设它是列出目录内容的任何常见Web服务器,使Web爬虫很容易:只需将其指向目录的根目录并定义用于收集实际..._lucene 构建索引 java
文章浏览阅读284次。2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/ 2021/06/13完成了外文翻译初稿。实习总结和用户管理手册。_辛丑年仲夏
文章浏览阅读1.3w次,点赞22次,收藏106次。Vitis HLS 构建项目并生成IP核(Vivado HLS)_vitis hls introductory examples
文章浏览阅读65次。周六早晨,我还在梦里solo纳什男爵,突然听到电话铃声,我男朋友突然约我爬山。爬 山???周六?爬山?这是什么奇妙的组合,再配上我的男朋友,这事儿不能用奇怪来形容了,可以说是——诡异。近半年来,我隐隐感觉到男朋友对我态度的变化他变得更体贴,更温柔,更顺从,但是我确能从这些东西里,从他的眼神里读出不一样的东西,一种完全相反的东西,是暴戾、愤怒,但是他的举止行为没有任何的问题,半年来我一直在怀疑对方和...
文章浏览阅读4.3k次,点赞2次,收藏38次。本文思想来自:时间序列数据的分段线性表示PLR算法以拟合误差为阈值,会出现两类问题:采用累积误差进行分段的算法对短时间内大波动数据不敏感,分段效果差;采用平均误差的分段算法在遇到长时间小波动数据后,对明显状态变化处理不敏感,各个子序列的开始与结束时间不精确。即,由于采用累积误差或平均误差,对一些状态变化的拐点不敏感。伪代码:python代码:def Select_Important_Points(T, R): X = [] for i in range(0, len(T_数据分段算法
文章浏览阅读468次。实现根据在线离线判断加载地图, 在线加载谷歌影响地图, 离线加载本地瓦片地图 作者: 狐狸家的鱼 Github: 八至html代码<div id="map" tabindex="0" class="map"></div>tabindex="0"是为了启动键盘事件。js代码..._ol.source.vectortile 谷歌经纬度
文章浏览阅读2k次。原创 python-机器学习-决策树实现 ..._巴纳吉模型 python
文章浏览阅读1.2k次。剑魂之刃全服合服停机维护预告,为优化服务器性能,保证玩家良好的游戏环境和游戏体验,我们计划于7月14日对剑魂之刃全服服务器进行停机维护并对部分服务器进行合服及数据优化操作;全服停机维护时间:7月14日凌晨1:00——9:00,可能根据实际维护情况提前或延后,停机维护期间玩家无法正常登陆游戏。维护后,以上所有服务器的玩家将获得如下补偿:1、所有玩家可获得10个中级强化石固定补偿2、自服务器开始维护起..._剑魂之刃为什么停营知乎
文章浏览阅读9.7k次,点赞6次,收藏35次。在 python 编写的程序中,我们经常会看到一片的 argparse 相关代码,而它究竟怎么使用呢?接下来,我们将以例子详细学习它。argparse是什么?argparse 是一个__命令行参数解析__模块。可以轻松编写用户友好的命令行接口,在程序中定义需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。argparse 还会自动生成帮助和使用手册,..._argparse.argumentparser.add_argument cuda报错
文章浏览阅读4.2k次,点赞6次,收藏37次。计算机视觉课程(一)安装VSCode+python+opencv环境整个系统我配置了大约3个小时才基本搞定,由于在写博客前就已经安装完成,所以有的出错的地方无法截图展示。先声明一下,我安装的是VSCode+python+opencv,至于是否还有其他未知的兼容问题还需要我日后使用过程中慢慢总结。主要流程参考这个网址:https://blog.csdn.net/qq_21400315/artic...
文章浏览阅读3.3k次。数据丢失原因:数据已经被消费但是offset没有提交。原因1:强行kill线程,导致消费后的数据,offset没有提交。原因2:设置offset为自动提交,关闭kafka时,如果在close之前,调用 consumer.unsubscribe() 则有可能部分offset没提交,下次重启会重复消费。原因3(重复消费最常见的原因):消费后的数据,当offset还没有提交时,partiti..._kafka_exporter: error: unknown long flag '--offset.show-all', try --help