`

ElasticSearch操作Demo

 
阅读更多
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();
	}
}

 

0
0
分享到:
评论

相关推荐

    elasticSearch的操作demo

    这个“elasticSearch的操作demo”旨在展示如何在Java环境中与Elasticsearch进行交互。 首先,我们关注`ElasticsearchConfig.java`文件。这个文件通常包含了Elasticsearch的配置信息,如节点地址、端口、集群名等。...

    ES 操作的demo ES 操作的demo

    关于 全文搜索引擎 ElasticSearch 操作的 demo,内有注释,简单易懂 关于 全文搜索引擎 ElasticSearch 操作的 demo,内有注释,简单易懂 关于 全文搜索引擎 ElasticSearch 操作的 demo,内有注释,简单易懂

    elasticsearch-demo

    "elasticsearch-demo"项目展示了如何在不同项目中使用相同的Elasticsearch 7.4.0版本,通过命名空间策略来区分索引。结合SpringBoot 2.3.12,可以实现简单而强大的数据管理和搜索功能。这个演示项目对于学习和理解...

    elasticsearch-demo.zip

    在现代大数据处理和搜索领域,Elasticsearch(ES)因其高效、可扩展的特性,已经成为广泛使用的搜索引擎和数据分析工具。而SpringBoot作为Java开发者的首选微服务框架,它简洁的配置方式和强大的自动化配置能力,...

    springBoot Elasticsearch 配置 demo

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

    Elasticsearch Demo 读取word内容写入到Es上并展示在WebFrom页面上

    总的来说,这个"Elasticsearch Demo"项目涵盖了从数据源获取信息,到存储、查询和展示的全过程,是学习Elasticsearch基础操作的一个好例子。它强调了Elasticsearch在全文搜索和实时数据分析中的能力,以及如何将其...

    Spring boot elasticsearch demo

    Spring Data Elasticsearch提供了一个丰富的抽象层,允许开发者通过定义接口来操作Elasticsearch。例如,创建一个`User`实体并实现对应的`ElasticsearchRepository`: ```java public interface UserRepository ...

    es整合springboot-elasticsearch-demo.zip

    **标题解析:** "es整合springboot-elasticsearch-demo" 这个标题暗示了这是一个关于如何将Elasticsearch集成到Spring Boot应用的示例项目。Elasticsearch是一个强大的分布式搜索引擎,而Spring Boot则是一个用于...

    springboot集合elasticsearch demo(内含增删改查)

    这个Demo项目提供了SpringBoot与Elasticsearch的整合示例,包括了基础的增删改查操作,帮助开发者快速理解如何在实际应用中使用Elasticsearch。 首先,SpringBoot是Spring框架的一个轻量级版本,它简化了新Spring...

    elasticsearch demo示例 源码程序

    **Elasticsearch(ES)** 是一款开源的、分布式全文搜索引擎,它以其高效、灵活、可扩展性在大数据处理和实时分析领域广受欢迎。这个压缩包包含了一个使用Java API编写的Elasticsearch基本功能的演示程序,名为...

    springboot操作es demo,springboot-elasticsearch

    springboot操作es demo,springboot-elasticsearch

    elasticsearch v6.3.2 演示demo

    **Elasticsearch v6.3.2 演示 Demo** Elasticsearch 是一个流行的开源搜索引擎,基于 Lucene 库,被广泛用于全文检索、数据分析和实时数据分析场景。本演示DEMO是针对Elasticsearch v6.3.2 版本的实践应用,旨在...

    elasticsearch-java-demo

    整合 Elasticsearch,Spring Boot 提供了`spring-boot-starter-data-elasticsearch`模块,帮助开发者快速接入 Elasticsearch,并提供了易于使用的 CRUD 操作接口。 **Java 实现 Elasticsearch 增删改查** 1. **...

    demo_springboot_ES_mybatis操作es_DEMO_mybatis_

    在本项目"Demo_springboot_ES_mybatis操作es_DEMO_mybatis"中,我们将探讨如何集成SpringBoot、MyBatis以及Elasticsearch(ES)框架,以实现对ES数据库的基本操作。SpringBoot以其便捷的配置和强大的依赖管理,极大...

    esDemo.zip

    在本压缩包"esDemo.zip"中,包含了一个关于Elasticsearch操作的示例,帮助用户理解和实践Elasticsearch的基本功能,如索引的创建、删除以及查询操作。 **Elasticsearch核心概念** 1. **索引(Index)**: 在Elastic...

    elasticsearch操作模板Demo

    **Elasticsearch 操作模板详解** 在大数据时代,Elasticsearch 作为一个强大的分布式搜索引擎和分析引擎,被广泛应用于日志分析、实时监控、全文搜索等多个领域。为了更好地管理和使用 Elasticsearch,我们常常会...

    ElasticSearch java开发Demo(5.1.5)_Javaelasticsearch_ES使用java开发_ela

    在Java环境中,我们可以使用官方提供的Java API来与Elasticsearch进行交互,实现数据的索引、查询、更新和删除等操作。 **一、Elasticsearch Java API** 1. **安装与配置**: 首先,你需要在项目中引入Elastic...

    基于.netcore搜索封装ElasticSearch.zip

    这个名为"基于.netcore搜索封装ElasticSearch.zip"的压缩包,显然包含了一个针对.NET Core平台的Elasticsearch客户端库,方便开发者在.NET Core应用中集成和操作Elasticsearch。 Elasticsearch是一个开源的分布式...

    JAVA实现ElasticSearch的简单实例

    7. **Java REST客户端的使用**:`RestHighLevelClient`是Elasticsearch提供的高级Java客户端,提供了丰富的API用于操作索引、文档、搜索等。创建客户端实例需要提供ES服务器的URL,可以设置连接参数如超时、重试策略...

    elasticsearch_demo.zip

    Elasticsearch(ES)是一款开源的全文搜索引擎,以其高效、可扩展和易用性闻名。本教程的源码"elasticsearch_demo.zip"是针对Elasticsearch的进阶学习提供的实践项目,旨在帮助开发者深入理解其核心概念和高级特性。...

Global site tag (gtag.js) - Google Analytics