package com.feng.elasticsearch; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.client.Client; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; public class ElasticSearchUtil { private Client client; public ElasticSearchUtil() { client = new TransportClient().addTransportAddress(new InetSocketTransportAddress("localhost", 9300)); } public static void main(String[] args) { ElasticSearchUtil test = new ElasticSearchUtil(); test.generateIndex(); // test.getIndex(); test.searchIndex(); // test.deleteIndex(); test.closeClient(); } /** * 创建索引 */ public void generateIndex() { Map<String, Object> json = new HashMap<String, Object>(); json.put("user", "sf"); json.put("postDate", new Date()); json.put("message", "trying out Elastic Search"); IndexResponse response = client.prepareIndex("feng", "test", "1").setSource(json).execute().actionGet(); } /** * 查询索引 */ public void getIndex() { GetResponse response = client.prepareGet("feng", "test", "1").execute().actionGet(); Map<String, Object> rpMap = response.getSource(); if (rpMap == null) { System.out.println("empty"); return; } Iterator<Entry<String, Object>> rpItor = rpMap.entrySet().iterator(); while (rpItor.hasNext()) { Entry<String, Object> rpEnt = rpItor.next(); System.out.println(rpEnt.getKey() + " : " + rpEnt.getValue()); } } /** * 查询记录 */ public void searchIndex() { QueryBuilder qb = QueryBuilders.termQuery("user", "sf"); // 100|hits|per|shard|will|be|returned|for|each|scroll SearchResponse scrollResp = client.prepareSearch("feng") .setTypes("test") .setSearchType(SearchType.SCAN) .setScroll(new TimeValue(60000)) .setQuery(qb) .setSize(100) .execute() .actionGet(); // Scroll until no hits are returned while (true) { scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new TimeValue(600000)).execute() .actionGet(); for (SearchHit hit : scrollResp.getHits()) { Iterator<Entry<String, Object>> rpItor = hit.getSource().entrySet().iterator(); while (rpItor.hasNext()) { Entry<String, Object> rpEnt = rpItor.next(); System.out.println(rpEnt.getKey() + " : " + rpEnt.getValue()); } } // Break condition: No hits are returned if (scrollResp.getHits().hits().length == 0) { break; } } } public void deleteIndex() { DeleteResponse response = client.prepareDelete("feng", "test", "1").execute().actionGet(); } public void closeClient() { client.close(); } }
相关推荐
这个“elasticSearch的操作demo”旨在展示如何在Java环境中与Elasticsearch进行交互。 首先,我们关注`ElasticsearchConfig.java`文件。这个文件通常包含了Elasticsearch的配置信息,如节点地址、端口、集群名等。...
关于 全文搜索引擎 ElasticSearch 操作的 demo,内有注释,简单易懂 关于 全文搜索引擎 ElasticSearch 操作的 demo,内有注释,简单易懂 关于 全文搜索引擎 ElasticSearch 操作的 demo,内有注释,简单易懂
"elasticsearch-demo"项目展示了如何在不同项目中使用相同的Elasticsearch 7.4.0版本,通过命名空间策略来区分索引。结合SpringBoot 2.3.12,可以实现简单而强大的数据管理和搜索功能。这个演示项目对于学习和理解...
在现代大数据处理和搜索领域,Elasticsearch(ES)因其高效、可扩展的特性,已经成为广泛使用的搜索引擎和数据分析工具。而SpringBoot作为Java开发者的首选微服务框架,它简洁的配置方式和强大的自动化配置能力,...
考虑到性能,可以配置Elasticsearch的刷新间隔、分片数和副本数等参数,以及利用Spring Data Elasticsearch的批量操作。 9. **错误处理**: 为处理可能出现的Elasticsearch异常,如连接失败或查询错误,确保在...
总的来说,这个"Elasticsearch Demo"项目涵盖了从数据源获取信息,到存储、查询和展示的全过程,是学习Elasticsearch基础操作的一个好例子。它强调了Elasticsearch在全文搜索和实时数据分析中的能力,以及如何将其...
Spring Data Elasticsearch提供了一个丰富的抽象层,允许开发者通过定义接口来操作Elasticsearch。例如,创建一个`User`实体并实现对应的`ElasticsearchRepository`: ```java public interface UserRepository ...
**标题解析:** "es整合springboot-elasticsearch-demo" 这个标题暗示了这是一个关于如何将Elasticsearch集成到Spring Boot应用的示例项目。Elasticsearch是一个强大的分布式搜索引擎,而Spring Boot则是一个用于...
这个Demo项目提供了SpringBoot与Elasticsearch的整合示例,包括了基础的增删改查操作,帮助开发者快速理解如何在实际应用中使用Elasticsearch。 首先,SpringBoot是Spring框架的一个轻量级版本,它简化了新Spring...
**Elasticsearch(ES)** 是一款开源的、分布式全文搜索引擎,它以其高效、灵活、可扩展性在大数据处理和实时分析领域广受欢迎。这个压缩包包含了一个使用Java API编写的Elasticsearch基本功能的演示程序,名为...
springboot操作es demo,springboot-elasticsearch
**Elasticsearch v6.3.2 演示 Demo** Elasticsearch 是一个流行的开源搜索引擎,基于 Lucene 库,被广泛用于全文检索、数据分析和实时数据分析场景。本演示DEMO是针对Elasticsearch v6.3.2 版本的实践应用,旨在...
整合 Elasticsearch,Spring Boot 提供了`spring-boot-starter-data-elasticsearch`模块,帮助开发者快速接入 Elasticsearch,并提供了易于使用的 CRUD 操作接口。 **Java 实现 Elasticsearch 增删改查** 1. **...
在本项目"Demo_springboot_ES_mybatis操作es_DEMO_mybatis"中,我们将探讨如何集成SpringBoot、MyBatis以及Elasticsearch(ES)框架,以实现对ES数据库的基本操作。SpringBoot以其便捷的配置和强大的依赖管理,极大...
在本压缩包"esDemo.zip"中,包含了一个关于Elasticsearch操作的示例,帮助用户理解和实践Elasticsearch的基本功能,如索引的创建、删除以及查询操作。 **Elasticsearch核心概念** 1. **索引(Index)**: 在Elastic...
**Elasticsearch 操作模板详解** 在大数据时代,Elasticsearch 作为一个强大的分布式搜索引擎和分析引擎,被广泛应用于日志分析、实时监控、全文搜索等多个领域。为了更好地管理和使用 Elasticsearch,我们常常会...
在Java环境中,我们可以使用官方提供的Java API来与Elasticsearch进行交互,实现数据的索引、查询、更新和删除等操作。 **一、Elasticsearch Java API** 1. **安装与配置**: 首先,你需要在项目中引入Elastic...
这个名为"基于.netcore搜索封装ElasticSearch.zip"的压缩包,显然包含了一个针对.NET Core平台的Elasticsearch客户端库,方便开发者在.NET Core应用中集成和操作Elasticsearch。 Elasticsearch是一个开源的分布式...
7. **Java REST客户端的使用**:`RestHighLevelClient`是Elasticsearch提供的高级Java客户端,提供了丰富的API用于操作索引、文档、搜索等。创建客户端实例需要提供ES服务器的URL,可以设置连接参数如超时、重试策略...
Elasticsearch(ES)是一款开源的全文搜索引擎,以其高效、可扩展和易用性闻名。本教程的源码"elasticsearch_demo.zip"是针对Elasticsearch的进阶学习提供的实践项目,旨在帮助开发者深入理解其核心概念和高级特性。...