iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring 4+ElasticSearch如何集成
  • 862
分享到

Spring 4+ElasticSearch如何集成

2023-06-04 12:06:29 862人浏览 薄情痞子
摘要

小编给大家分享一下spring 4+elasticsearch如何集成,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一: ElasticSearch 基本概念IN

小编给大家分享一下spring 4+elasticsearch如何集成,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一: ElasticSearch 基本概念

INDEX:这是ES存储数据的地方,类似于关系数据库的DATABASE。


Document TYPE:嗯,类似关系数据库的表,主要功能是将完全不同SCHEMA(这个概念以后会讲到,不急)的数据分开,一个INDEX里面可以有若干个Document TYPE。


Document:好吧,这个类似关系数据库的一行,在同一个Document TYPE下面,每一Document都有一个唯一的ID作为区分;


Filed:类似关系数据库的某一列,这是ES数据存储的最小单位。


Cluster和node:ES可以以单点或者集群方式运行,以一个整体对外提供search服务的所有节点组成cluster,组成这个cluster的各个节点叫做node。


shard:通常叫分片,这是ES提供分布式搜索的基础,其含义为将一个完整的INDEX分成若干部分存储在相同或不同的节点上,这些组成INDEX的部分就叫做shard。


Replica:和REPLICATioN通常指的都是一回事,即INDEX的冗余备份,可以用于防止数据丢失,或者用来做负载分担。


二: ElasticSearch TransportClient和NodeClient

如果你使用Java,ElasticSearch 提供Transport CLIENT和Node CLIENT两种连接方式。transport CLIENT充当ES集群和你的应用直接的通信层,它知道api,并且能够在节点间自动轮循。


Node CLIENT,事实上是集群中的一个节点(但是不存储数据,并且不能作为主节点),由于它是一个节点,它知道整个集群的状态(全部节点都在哪,哪些分片在哪些节点上等等),这意味着它执行API时可以少用一个网络跳跃。


但需要完整的Node节点参数配置。


两种CLIENT的使用场景:


1.如果你想让你的应用和集群解耦,transport CLIENT是一个理想的选择。例如,如果你的集群快速创建和销毁连接,那么transport CLIENT比node CLIENT轻很多,因为它不是集群的一部分。


同样,如果你需要创建上千个连接,但是你不希望有上千个node CLIENT加入你的集群,transport CLIENT将是一个更好的选择。


2.在另一方面,如果你只需要几个长连接的,能持久的连接到集群,node CLIENT会更高效一点,因为它知道集群的结构,但是要注意防火墙影响相关通信的问题。


三:与Spring 集成

  1. @Configuration

  2. @PropertySource("classpath:context-datasource.properties")

  3. public class ElasticSearchElConfig {

  4.     @Value("${el.cluster.name}")

  5.     private String elClusterName;

  6.     @Value("${el.cluster.node1.url}")

  7.     private String elClusterNode1Url;

  8.     @Value("${el.cluster.node1.port}")

  9.     private Integer elClusterNode2Port;

  10.     @Bean(name = "elasticSearchClient")

  11.     public Client elasticSearchClient() {

  12.         Map<String, Object> settimgMap = new HashMap<String, Object>();

  13.         settimgMap.put("cluster.name", elClusterName);

  14.         Settings settings = Settings.settingsBuilder().put(settimgMap).build();

  15.         TransportClient client = TransportClient.builder().settings(settings).build()

  16.                 .addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(elClusterNode1Url, elClusterNode2Port)));

  17.         return client;

  18.     }

  19.     @Bean(name = "elasticTemplate")

  20.     public ElasticsearchTemplate elasticTemplate(Client elasticSearchClient) {

  21.         return new ElasticsearchTemplate(elasticSearchClient);

  22.     }

  23.     @Autowired

  24.     private Environment environment;

  25.     @Bean

  26.     public static PropertySourcesPlaceholderConfigurer propertyConfigure() {

  27.         return new PropertySourcesPlaceholderConfigurer();

  28.     }

  29. }


四:Demo

文档类


点击(此处)折叠或打开

  1. @Document(indexName="gmap_system_log_index",type="gmap_system_log")

  2. public class Logs extends ValueObject{

  3.     

  4.     private static final long serialVersionUID = 1L;

  5.     

  6.     @Field(type=FieldType.Integer,index=FieldIndex.not_analyzed,store=true)

  7.     private Integer userId;

  8.     @Field(type=FieldType.String,index=FieldIndex.not_analyzed,store=true)

  9.     private String system;

  10.     @Field(type=FieldType.String,index=FieldIndex.not_analyzed,store=true)

  11.     private String url;

  12.     @Field(type=FieldType.String,index=FieldIndex.analyzed,store=true)

  13.     private String content;

  14.     

  15.     public Integer getUserId() {

  16.         return userId;

  17.     }

  18.     

  19.     public void setUserId(Integer userId) {

  20.         this.userId = userId;

  21.     }

  22.     

  23.     public String getSystem() {

  24.         return system;

  25.     }

  26.     

  27.     public void setSystem(String system) {

  28.         this.system = system;

  29.     }

  30.     

  31.     public String getUrl() {

  32.         return url;

  33.     }

  34.     

  35.     public void setUrl(String url) {

  36.         this.url = url;

  37.     }

  38.     

  39.     public String getContent() {

  40.         return content;

  41.     }

  42.     

  43.     public void setContent(String content) {

  44.         this.content = content;

  45.     }

  46.     

  47.     

  48. }


服务类


点击(此处)折叠或打开

  1. import java.util.ArrayList;

  2. import java.util.List;

  3. import org.springframework.beans.factory.annotation.Autowired;

  4. import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;

  5. import org.springframework.data.elasticsearch.core.query.IndexQuery;

  6. import org.springframework.data.elasticsearch.core.query.IndexQueryBuilder;

  7. import org.springframework.stereotype.Component;


  8. @Component("elasticSearchDemo")

  9. public class ElasticSearchDemo {

  10.     @Autowired

  11.     private ElasticsearchTemplate elasticTemplate;

  12.     

  13.     public void createGmapLogsIndex() {

  14.         System.out.println(elasticTemplate.createIndex(Logs.class));

  15.     }

  16.     

  17.     public void createGmapLogs(List<Logs> logs) {

  18.         List<IndexQuery> queries = new ArrayList<>();

  19.         for (Logs log : logs) {

  20.             IndexQuery indexQuery = new IndexQueryBuilder().withObject(log).build();

  21.             queries.add(indexQuery);

  22.         }

  23.         elasticTemplate.bulkIndex(queries);

  24.     }

  25.     

  26.     public void createGmapLog(Logs log) {

  27.         List<Logs> logs = new ArrayList<>();

  28.         logs.add(log);

  29.         createGmapLogs(logs);

  30.     }

  31. }

以上是“Spring 4+ElasticSearch如何集成”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Spring 4+ElasticSearch如何集成

本文链接: https://www.lsjlt.com/news/238051.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring 4+ElasticSearch如何集成
    小编给大家分享一下Spring 4+ElasticSearch如何集成,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一: ElasticSearch 基本概念IN...
    99+
    2023-06-04
  • Springboot如何集成Elasticsearch
    小编给大家分享一下Springboot如何集成Elasticsearch,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!集成配置步骤步骤1:加入 Maven 相关依...
    99+
    2023-06-22
  • springboot中如何集成elasticsearch
    这篇文章主要介绍“springboot中如何集成elasticsearch”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot中如何集成elasticsearch”文章能帮助大家解决问...
    99+
    2023-06-08
  • SpringBoot框架如何集成ElasticSearch
    这篇文章主要为大家展示了“SpringBoot框架如何集成ElasticSearch”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot框架如何集成ElasticSearch”这篇...
    99+
    2023-06-25
  • SpringBoot集成 ElasticSearch
    Spring Boot 集成 ElasticSearch 对于ElasticSearch比较陌生的小伙伴可以先看看ElasticSearch的概述ElasticSearch安装、启动、操作及概念简介 好的开始啦~ 1、基础操作 1.1、导入...
    99+
    2023-08-18
    elasticsearch spring boot java maven intellij-idea
  • Spring Boot如何集成Elasticsearch模块实现简单查询功能
    这篇文章主要介绍“Spring Boot如何集成Elasticsearch模块实现简单查询功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring Boot如何集成Elas...
    99+
    2023-07-02
  • 详解spring-boot集成elasticsearch及其简单应用
    介绍记录将elasticsearch集成到spring boot的过程,以及一些简单的应用和helper类使用。接入方式使用spring-boot中的spring-data-elasticsearch,可以使用两种内置客户端接入节点客户端(...
    99+
    2023-05-31
    spring boot elasticsearch
  • springboot如何集成spring cache
    这篇文章给大家分享的是有关springboot如何集成spring cache的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。声明式缓存Spring 定义 CacheManager 和 Cache 接口用来统一不同...
    99+
    2023-06-19
  • PHP与Elasticsearch的集成
    PHP与Elasticsearch的集成随着大数据和数据挖掘的发展,搜索引擎已经成为了我们生活中必不可少的工具。而Elasticsearch就是一个快速、开放、可扩展的搜索和分析引擎,它能够轻松地进行全文检索、数据分析和实时数据的存储与查询...
    99+
    2023-05-15
    集成 PHP elasticsearch
  • spring如何集成redis cluster
    本篇内容介绍了“spring如何集成redis cluster”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!客户端采用最新的jedis 2....
    99+
    2023-05-30
    spring redis
  • spring boot如何集成redisson
    这篇文章主要介绍了spring boot如何集成redisson的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇spring boot如何集成redisson文章都会有所收获,下面我们一起来看...
    99+
    2023-07-04
  • Spring+JPA如何集成Hibernate
    这篇文章主要介绍Spring+JPA如何集成Hibernate,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.JPA简介 Java Persistence API (JP...
    99+
    2024-04-02
  • Elasticsearch 介绍及java集成
    一、Elasticsearch 基础介绍 ElasticSearch 是分布式实时搜索、实时分析、实时存储引擎,简称(ES), 成立于2012年,是一家来自荷兰的、开源的大数据搜索、分析服务提供商,为企业提供实时搜索、数据分析服务,支持PB...
    99+
    2023-09-23
    elasticsearch java 大数据
  • Spring Boot 集成Elasticsearch模块实现简单查询功能
    目录背景系统集成引入jar包application.yml文件中添加ES配置创建文档实体接口实现具体实现基础查询新增文档请求参数Controller实现返回结果修改文档通过id查询文...
    99+
    2024-04-02
  • 如何进行spring hibernate的集成
    如何进行spring hibernate的集成,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Hibernate有很多值得学习的地方,这里主要介绍Spring H...
    99+
    2023-06-17
  • Springboot如何集成spring cache缓存
    这篇“Springboot如何集成spring cache缓存”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spr...
    99+
    2023-06-30
  • Laravel如何使用scout集成elasticsearch做全文搜索
    这篇文章给大家分享的是有关Laravel如何使用scout集成elasticsearch做全文搜索的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Laravel 使用 scout 集成 elasticsearch ...
    99+
    2023-06-14
  • SpringBoot集成ElasticSearch的示例代码
    目录一、Elasticseach介绍1.简单介绍2.对比关系:3.详细说明:4.查出数据的解释 二、SpringBoot集成Elasticseach1.引入依赖2.添加配置...
    99+
    2024-04-02
  • SpringBoot集成ElasticSearch的代码是什么
    这篇“SpringBoot集成ElasticSearch的代码是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Sprin...
    99+
    2023-06-29
  • spring cloud如何集成nacos配置中心
    目录spring cloud集成nacos配置中心一、添加依赖二、添加bootstrap.yml配置文件三、添加远程配置nacos作为SpringCloud配置中心一、背景介绍二、项...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作