`

基于spring data的Elastic Search的配置示例

阅读更多
基于spring data的Elastic Search的配置示例


import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;

import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;

import com.xxx.cms.config.props.EsProps;
xxx
@Configuration
@EnableElasticsearchRepositories(
		basePackages={"com.xxx.cms.elasticsearch.repositories"}
		)
public class ElasticSearchConfig {

	private Logger logger = LoggerFactory.getLogger(getClass());
	
	@Autowired
	Environment env;
	
	@Bean
    public ElasticsearchOperations elasticsearchTemplate() {
        return new ElasticsearchTemplate(elasticsearchClient());
    }
	
	@Bean
	public EsProps esProps(){
		
		EsProps esProps = new EsProps();
		esProps.setInit(Boolean.valueOf(env.getProperty("hs.cms.srv.es.init")));
		return esProps;
	}
	
	@Bean
	public Client elasticsearchClient(){
		
		String esNodes = env.getProperty("hs.cms.srv.es.cluster.nodes"),
				clusterName = env.getProperty("hs.cms.srv.es.cluster.name");
		ArrayList<Pair<String, Integer>> nodePairs = new ArrayList<>();
		for (String nodeStr : esNodes.split(",")) {
			
			String[] nodeSpliArr = nodeStr.split(":");
			Pair<String, Integer> pair = new ImmutablePair<>(nodeSpliArr[0], Integer.valueOf(nodeSpliArr[1]));
			nodePairs.add(pair);
		}
		
		Settings settings = Settings.settingsBuilder()
                .put("cluster.name", clusterName)
                .build();
		TransportClient client = TransportClient.builder()
                .settings(settings)
                .build();
		for (Pair<String, Integer> pair : nodePairs) {
			
			try {
				client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(pair.getLeft()), pair.getRight()));
			} catch (UnknownHostException e) {
				
				logger.error("初始化Es配置出错", e);
				return null;
			}
		}
		return client;
	}
	
}
分享到:
评论

相关推荐

    spring data elasticsearch示例

    本示例程序主要是对spring data elasticsearch的实践,包含接口声明查询、注解查询和自定义repository查询。运行TestCase时候,请先将配置文件中ES服务端ip:port配置替换成真是的服务端地址

    spring data elasticsearch示例.zip

    本示例程序主要是对spring data elasticsearch的实践,包含接口声明查询、注解查询和自定义repository查询。运行TestCase时候,请先将配置文件中ES服务端ip:port配置替换成真是的服务端地址

    spring-data-elasticsearch

    `spring-data-elasticsearch-sample-application-master` 是一个包含整合示例的项目,它展示了如何在实际应用中使用 Spring Data Elasticsearch。这个项目可能包含了以下部分: 1. **配置**: 应用的配置文件(如 `...

    SpringBoot整合Spring Data Elasticsearch的过程详解

    "SpringBoot整合Spring Data Elasticsearch的过程详解" SpringBoot整合Spring Data ...通过以上介绍,SpringBoot整合Spring Data Elasticsearch的过程详解可以帮助开发者更好地理解Elasticsearch的使用和配置。

    spring-data-elasticsearch基本添删改查,maven项目

    本项目是一个基于Maven构建的示例,旨在帮助我们理解如何在实际应用中整合Spring Data Elasticsearch。下面我们将深入探讨这个主题。 首先,让我们了解Spring Data Elasticsearch的核心概念。它是Spring Data项目的...

    基于Spring Data Jest的Elasticsearch数据统计示例

    "基于Spring Data Jest的Elasticsearch数据统计示例" 本文主要介绍了基于Spring Data Jest的Elasticsearch数据统计示例,通过使用Spring Data Jest链接Elasticsearch,实现数据统计示例。同时,本文也介绍了命令...

    Spring 各种例子:Spring Data Elasticsearch,JDBC,JPA,LDAP,MongoDB

    2. Spring Data Elasticsearch:展示了基本文本搜索、地理空间搜索和分面搜索的示例。使用了High Level REST Client作为模板和仓库的后端。 - example:展示了使用基本文本搜索、地理空间搜索和分面搜索的示例。 -...

    Elasticsearch+spring

    - `pom.xml`:Maven 项目配置,包含 Elasticsearch 和 Spring Data Elasticsearch 的依赖。 - `application.properties`:Spring Boot 的配置文件,配置 Elasticsearch 的连接信息。 - `ElasticsearchConfig.java`:...

    spring整合elasticsearch-2.3.5

    本示例程序主要是spring 整合elasticsearch-2.3.5的实践,测试时先将配置文件es.properties中ES服务端es.ip,es.port, es.cluster 配置替换成自己的服务器信息

    spring-data连接elasticsearch

    Spring Data Elasticsearch通过简化配置和API调用,降低了与Elasticsearch交互的复杂性。 **一、Spring Data Elasticsearch的核心概念** 1. **Repository抽象**:Spring Data Elasticsearch提供了一种基于...

    springMVC整合elasticsearch,基于maven

    首先,集成Elasticsearch到SpringMVC项目中,我们需要在项目的`pom.xml`文件中添加Elasticsearch和Spring Data Elasticsearch的相关依赖。确保你的Maven配置正确,以便能够从Maven仓库下载所需的库。 ```xml &lt;!--...

    springBoot动态操作Elasticsearch组件

    首先,我们要了解Spring Data Elasticsearch,这是Spring提供的一个模块,它为Elasticsearch提供了数据访问支持。通过使用Spring Data Elasticsearch,我们可以方便地实现Elasticsearch的CRUD(创建、读取、更新和...

    spring-data-elasticsearch-sample-application-master

    《Spring Data Elasticsearch实战:构建应用示例》 在IT领域,Elasticsearch作为一个强大的全文搜索引擎,因其高效、灵活和可扩展性,被广泛应用于数据检索、日志分析、监控等多种场景。Spring Data Elasticsearch...

    基于Spring Batch向Elasticsearch批量导入数据示例

    基于Spring Batch向Elasticsearch批量导入数据示例 本文介绍了基于Spring Batch向Elasticsearch批量导入数据示例,旨在解决大规模数据从数据库导入Elasticsearch时的效率问题。Spring Batch框架使用ItemReader分页...

    Spring boot elasticsearch demo

    **Spring Boot Elasticsearch 演示** 在现代Java开发中,Spring Boot框架...遗憾的是,实际的源代码和具体实现不在提供的文件列表中,但通过上述步骤,你应该能理解如何构建一个基本的Spring Boot Elasticsearch示例。

    spring-data-elasticsearch-example:Spring Data Elasticsearch示例

    **Spring Data Elasticsearch 示例详解** Spring Data Elasticsearch 是一个用于简化与 Elasticsearch 交互的库,它是 Spring Data 家族的一部分,旨在提供一种声明式的方式来进行索引管理和文档操作。本示例项目,...

    springBoot Elasticsearch 配置 demo

    考虑到性能,可以配置Elasticsearch的刷新间隔、分片数和副本数等参数,以及利用Spring Data Elasticsearch的批量操作。 9. **错误处理**: 为处理可能出现的Elasticsearch异常,如连接失败或查询错误,确保在...

    Springboot集成spring data elasticsearch过程详解

    Spring Boot 是一个基于 Java 的框架,用于快速构建独立的、生产级别的基于 Spring 的应用程序,而 Spring Data Elasticsearch 是 Spring Data 家族中的一员,负责处理 Elasticsearch 的数据访问。下面将详细介绍 ...

    elasticsearch整合Spring用例

    本文将详细讲解如何将Elasticsearch与Spring Data结合使用,包括所需的坐标(依赖)、示例代码以及实体类的设计。 首先,集成Elasticsearch与Spring Data的关键在于正确配置项目的依赖。在Maven项目中,你需要在pom...

    springboot整合es-springboot-elasticsearch.zip

    1. **添加依赖**:在SpringBoot项目的pom.xml文件中,引入Elasticsearch的Spring Data Elasticsearch依赖。确保版本与Elasticsearch服务器版本匹配。 ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;...

Global site tag (gtag.js) - Google Analytics