ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

win10+springboot + elasticsearch

2022-04-15 22:32:03  阅读:195  来源: 互联网

标签:node http springboot private elasticsearch win10 true es


1. 本地安装es 

下载安装包 : https://www.elastic.co/cn/downloads/elasticsearch , 最新版本的直接选择机器环境即可下载 , 如若需要其他版本的 , 点击右侧view past release 查看历史版本进行下载即可 . 如下 : 

 

 

 2.解压出来后进入,config目录,修改elasticsearch.yml文件配置变量

# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
#
# 集群名
cluster.name: my-es
#
# ------------------------------------ Node ------------------------------------
#
# 节点名
node.name: cloudtravel-es
# 节点是否有资格被选举为node default = true.默认集群中的第一台机器为master.若该节点挂了将会重新选举
node.master: true
# 指定该节点是否存储索引数据 .default=true
node.data: true
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
#
# ----------------------------------- Paths ------------------------------------
#
# 配置文件的存储路径 . 不设置默认就是根目录的config文件夹
#
path.data: D:/software/elasticSearch/elasticsearch-7.14.2/config
#
# 日志文件存储路径 不设置默认就是根目录的logs文件夹
#
path.logs: D:/software/elasticSearch/elasticsearch-7.14.2/logs
#
# ----------------------------------- Memory -----------------------------------
#
# 这个配置,锁定物理内存地址,防止elasticsearch内存被交换出去,
# 也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高;
bootstrap.memory_lock: true
# ---------------------------------- Network -----------------------------------
#
# 对外服务的http端口 . 默认为9200
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: ["cloudtravel-es"]
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

3.es是自带jdk的 . 启动时会优先寻找Java_home . 这里强制指定es使用其版本自带的jdk .修改启动命令 : elasticsearch-env.bat[windows下] . 对比了下 , 我自己的jdk少了个conf文件夹 . 也就是少了security的作用 . 干啥用的还没搞明白 . 但是启动时会报当前版本不对啥的

 

 

 4. 这时候进入bin目录执行elasticsearch.bat就可以启动了. 启动成功 . 如下 :看到started就表示启动成功了 . 其中 : transportservice指定的ip:端口即为我们Java代码中进行配置的ip和端口 . httpTransportService则是对外提供http服务时的ip:端口

 

 

 这时候浏览器访问http://localhost:9200/ . 看到如下返回.就表示初步启动成功了 

 

 

5. 配置为服务自启动 : elasticsearch的bin目录下有一个elasticsearch-service.bat

两个命令 : .\elasticsearch-service.bat install 将该es加载为服务   .\elasticsearch-service.bat start: 启动服务  后续window就可以直接通过服务列表直接控制开关了 . 不再需要一直开个黑窗口

6. 引入前端服务 : 为直观的看到es服务中的内容 . 这里引入界面化管理工具ElasticSearch-head

其源码托管于GitHub,地址为:https://github.com/mobz/elasticsearch-head

我这里是直接使用的node.js进行启动的 . node安装这里不再详细赘述 . 需要的自行百度 . elasticsearch-head下载到本地后 .

6.1. 解压 . 进入根目录下 , 执行npm install 初始化所需的node插件 . 

6.2. 插件初始化完成后 , 执行npm run start启动前端服务 . 如下 : 

 

 

6.3.这时候浏览器访问.http://localhost:9100/就可以直接看到当前es服务中的内容了 . 若es服务的ip:port换了 . 页面中也可以替换查询 . 如下 : 

 

 

 

 

7. 代码中使用 说明 :  我这是在现有工程里接入的,所以一些其他配置比如db配置啥的就不贴了 . 挑重点了

7.1 pom引用 : 这里es的自动装配启动包版本和springboot的版本一致即可 . 

<!-- 接入elasticsearch -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <version>${springboot-starter.version}</version>
</dependency>
            

7.2 资源文件配置 .可以单独创建一个es.yml也行 . 也可以直接在application.properties文件中进行配置.初步学习 , 就先最简单来了 .如下 :

# ************************** elasticsearch config ****************************
# 这里的集群名要和所连接的es服务中配置的cluster-name一致
spring.data.elasticsearch.cluster-name=my-es
# 和启动成功后报的transportservice后提示的ip:端口一致即可 . 默认为9300
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300

7.3 配置实体类 . 我用的是7.14.2版本 . 还是老原则, 学习先从能用起来开始 . 后续再更新复杂的用法

/**
 * es的index必须为小写
 */
@Getter
@Setter
@AllArgsConstructor // lombok 包下 : 全参构造器
@NoArgsConstructor // lombok 包下 : 无参构造器
@Document(indexName = "user") // indexName只允许小写
public class BaseUserModel implements Serializable {

    private static final long serialVersionUID = 8283483377785895360L;

    @Id
    @Field(type = FieldType.Long)
    private Long id;

    private String bizId;

    private String tenantId;

    private Integer userType;

    @Field(type = FieldType.Text)
    private String userName;

    @Field(type = FieldType.Text)
    private String idNumber;

    private Integer idNumType;

    private Date gmtCreate;

    private Date gmtUpdate;

    private String templateId;
}

7.4. 原来业务中已经有了在使用的dao方法了 . 这里可以专门定义一个服务于es的dao. 继承ElasticsearchRepository<BaseUserModel[上面配置的类] , Long[实体类中@id声明的属性的类型]>即可.这个类中提供了几个通用的增删查方法 .可以直接使用,如下 : 

 

 

 7.5 mock使用 : 查询数据库后结果同步至es . 业务上使用时 , 可直接进行事务同步 .

 

标签:node,http,springboot,private,elasticsearch,win10,true,es
来源: https://www.cnblogs.com/kxkl123/p/16151281.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有