`

一组获取Elasticsearch 索引表所有文档API使用案例

阅读更多

The best elasticsearch highlevel java rest api-----bboss 

一组获取Elasticsearch 索引表所有文档API使用案例

  • 统计文档总数量api
  • 简单获取所有文档api
  • 并行获取所有文档api

直接看案例:

package org.bboss.elasticsearchtest.searchall;

import org.frameworkset.elasticsearch.ElasticSearchHelper;
import org.frameworkset.elasticsearch.client.ClientInterface;
import org.frameworkset.elasticsearch.entity.ESDatas;
import org.frameworkset.elasticsearch.scroll.ScrollHandler;
import org.junit.Test;

import java.util.List;
import java.util.Map;

/**
 * <p>Description: 检索所有文档数据测试用例</p>
 * <p></p>
 * <p>Copyright (c) 2018</p>
 * @Date 2018/10/14 20:07
 * @author biaoping.yin
 * @version 1.0
 */
public class SearchAllTest {
	/**
	 * 统计索引中有多少文档
	 */
	@Test
	public void testCountAll(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		long esDatas = clientInterface.countAll("demo");
		System.out.println("TotalSize:"+esDatas);

	}
	/**
	 * 简单的检索索引表所有文档数据,默认分5000条记录一批从es获取数据
	 */
	@Test
	public void testSearchAll(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo",Map.class);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 简单的检索索引表所有文档数据,按指定的10000条记录一批从es获取数据
	 */
	@Test
	public void testSearchAllFethchSize(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo",10000,Map.class);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 检索索引表所有文档数据,默认分5000条记录一批从es获取数据,分批获取的数据交个一ScrollHandler来处理
	 */
	@Test
	public void testSearchAllHandler(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo", new ScrollHandler<Map>() {
			public void handle(ESDatas<Map> esDatas) throws Exception {
				List<Map> dataList = esDatas.getDatas();
				System.out.println("TotalSize:"+esDatas.getTotalSize());
				if(dataList != null) {
					System.out.println("dataList.size:" + dataList.size());
				}
				else
				{
					System.out.println("dataList.size:0");
				}
			}
		},Map.class);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 检索索引表所有文档数据,按指定的10000条记录一批从es获取数据,分批获取的数据交个一ScrollHandler来处理
	 */
	@Test
	public void testSearchAllFethchSizeHandler(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo",10000,new ScrollHandler<Map>() {
			public void handle(ESDatas<Map> esDatas) throws Exception {
				List<Map> dataList = esDatas.getDatas();
				System.out.println("TotalSize:"+esDatas.getTotalSize());
				if(dataList != null) {
					System.out.println("dataList.size:" + dataList.size());
				}
				else
				{
					System.out.println("dataList.size:0");
				}
			}
		},Map.class);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 并行检索索引表所有文档数据,默认分5000条记录一批从es获取数据,指定了并行的线程数为6
	 */
	@Test
	public void testSearchAllParrrel(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo",Map.class,6);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 并行检索索引表所有文档数据,按指定的10000条记录一批从es获取数据,指定了并行的线程数为6
	 */
	@Test
	public void testSearchAllFethchSizeParrrel(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo",10000,Map.class,6);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 并行检索索引表所有文档数据,默认分5000条记录一批从es获取数据,分批获取的数据交个一ScrollHandler来处理,指定了并行的线程数为6
	 */
	@Test
	public void testSearchAllHandlerParrrel(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo", new ScrollHandler<Map>() {
			public void handle(ESDatas<Map> esDatas) throws Exception {
				List<Map> dataList = esDatas.getDatas();
				System.out.println("TotalSize:"+esDatas.getTotalSize());
				if(dataList != null) {
					System.out.println("dataList.size:" + dataList.size());
				}
				else
				{
					System.out.println("dataList.size:0");
				}
			}
		},Map.class,6);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
	/**
	 * 并行检索索引表所有文档数据,按指定的10000条记录一批从es获取数据,分批获取的数据交个一ScrollHandler来处理,指定了并行的线程数为6
	 */
	@Test
	public void testSearchAllFethchSizeHandlerParrrel(){
		ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
		ESDatas<Map> esDatas = clientInterface.searchAll("demo",10000,new ScrollHandler<Map>() {
			public void handle(ESDatas<Map> esDatas) throws Exception {
				List<Map> dataList = esDatas.getDatas();
				System.out.println("TotalSize:"+esDatas.getTotalSize());
				if(dataList != null) {
					System.out.println("dataList.size:" + dataList.size());
				}
				else
				{
					System.out.println("dataList.size:0");
				}
			}
		},Map.class,6);
		List<Map> dataList = esDatas.getDatas();
		System.out.println("TotalSize:"+esDatas.getTotalSize());
		if(dataList != null) {
			System.out.println("dataList.size:" + dataList.size());
		}
		else
		{
			System.out.println("dataList.size:0");
		}
	}
}

 

开发交流

完整的demo工程

https://gitee.com/bbossgroups/eshelloword-booter

elasticsearch技术交流群:166471282

elasticsearch微信公众号:

bboss微信公众号:bbossgroups

1
0
分享到:
评论

相关推荐

    一个elasticsearch的示例代码

    本示例代码是关于如何在Java环境中使用Elasticsearch进行操作的一个实例。 在Java中,我们通常使用官方提供的`Elasticsearch Java Client`来与Elasticsearch服务器进行交互。`com.text.elasticsearch`这个文件夹...

    elasticsearch demo示例 源码程序

    总的来说,这个压缩包提供的"elasticsearch demo示例"是一个很好的学习资源,它涵盖了Elasticsearch的基础使用,包括索引管理、文档操作和搜索功能,同时展示了如何利用protobuf进行数据交换。通过学习和运行这个...

    ElasticSearch使用说明书 - 整合篇

    Elasticsearch 使用说明书整合篇详细解析 Elasticsearch(ES)是一种分布式、RESTful风格的搜索和数据分析引擎,常用于大数据分析和实时搜索场景。它不依赖传统的SQL数据库语句,而是采用JSON文档格式和HTTP协议...

    Elasticsearch入门.zip

    同时,Elasticsearch提供了丰富的API,如GET、POST、PUT、DELETE等,用于对索引、文档的操作。 对于搜索功能,Elasticsearch支持丰富的查询语法,包括全文搜索、精确匹配、范围查询、布尔组合查询等。其内部使用倒...

    elasticsearch-7.14.2-windows-x86_64.zip

    1. **节点(Node)**:每个运行Elasticsearch的实例称为一个节点。节点可以独立工作,也可以组建成集群协同工作。 2. **集群(Cluster)**:由一个或多个节点组成,它们共享相同的集群名称,共同管理索引和数据。 3. *...

    elasticsearch-6.3.0.tar.gz

    4. **权限**:由于安全考虑,确保Elasticsearch运行用户有正确的权限,可以使用`chown`命令改变文件所有权,如`chown -R user:group .`,将所有文件属主改为特定用户和组。 5. **启动**:运行`bin/elasticsearch`...

    Elasticsearch.in.Action.2015.11

    1. **集群(Cluster)**:一组Elasticsearch节点,它们共享相同的集群名称,共同存储和管理数据。 2. **节点(Node)**:运行Elasticsearch实例的服务器,可以加入或离开集群。 3. **路由与分片**:数据在节点间...

    Elasticsearch 50道面试题和答案.docx

    Elasticsearch Cluster 是一组连接在一起的一个或多个 Elasticsearch 节点实例。Elasticsearch 集群的功能在于在集群中的所有节点之间分配任务,进行搜索和建立索引。 Elasticsearch Node 是 Elasticsearch 的实例...

    elasticsearch指南

    文档(Document)是Elasticsearch中的基础概念,是存储在索引(Index)中的数据项,相当于关系数据库中表的一行记录。每个文档可以有不同的字段,字段类型定义了文档的结构。每个文档通过唯一标识符(Id)来索引,...

    ElasticSearch5.5.0入门学习.zip

    Elasticsearch 5.5.0 是一个高度可扩展、实时的搜索和分析引擎,广泛应用于日志分析、全文检索、性能监控等多个领域。作为一款分布式、RESTful 风格的搜索引擎,它允许开发者通过简单的 HTTP 请求进行数据索引、搜索...

    ElasticSearch中文学习教程

    - **Index**: 索引是一组文档的集合,类似于关系数据库中的表。 - **Document**: 文档是索引中的最小单位,类似于数据库表中的行。 - **Type**: 在ElasticSearch中,类型表示同一索引内的不同类别。在新版中,...

    Mastering ElasticSearch.pdf

    1. **倒排索引(Inverted Index)**:这是ElasticSearch的核心技术之一,它通过将文档中的词汇与包含这些词汇的文档列表相关联,从而实现快速搜索。 2. **分片和复制(Sharding and Replication)**:为了提高可用性和...

    ElasticSearch入门篇.docx

    - **Document(文档)**: 索引内的一条记录,由一组键值对组成。 - **Cluster(集群)**: 一个或多个ElasticSearch节点的集合,共同维护数据和提供联合索引/搜索功能。 - **Node(节点)**: 单个ElasticSearch实例,...

    elasticSearch 详细介绍,集群部署,常用API 常用插件 SQL使用

    - **索引**:一组文档的集合。 - **类型**:已废弃的概念,以前用于对索引中的文档进行分类。 - **文档**:包含具体数据的单位。 - **字段**:文档中的具体属性。 #### 四、ElasticSearch 特点与优势 - **分布式...

    Elasticsearch5学习笔记和Java对es进行增删改查示例

    - **索引(Index)**: 在Elasticsearch中,索引是一个存储文档的逻辑空间,类似于关系数据库中的表。 - **类型(Type)**: 类型是索引中的逻辑分类,尽管在Elasticsearch 5后已被弃用,但在本笔记中仍然会提及,以...

    最新版windows elasticsearch-7.13.1-windows-x86_64.zip

    - 使用Elasticsearch的 `_cat` API 和 Kibana 的监视器来定期检查集群健康状况、节点状态、索引分配等。 10. **安全性与权限**: - 通过X-Pack或Open Distro for Elasticsearch插件提供认证、授权、审计和加密等...

    Elasticsearch实战

    节点是Elasticsearch运行的单个实例,可以连接形成一个集群,集群则是一组协同工作的节点,共同存储数据并处理搜索请求。索引是存储和检索数据的主要方式,相当于关系数据库中的数据库;文档是索引中的基本存储单元...

    Elasticsearch

    3. **近似倒排索引**:Elasticsearch 使用倒排索引机制,能快速定位到包含特定关键词的文档。 4. **RESTful API**:Elasticsearch 提供了基于 HTTP 的 RESTful API,使得与其他系统集成变得简单。 5. **水平扩展**...

    elasticsearch权威指南

    3. **类型(Type)**:每个索引可以包含一种或多种类型,但在Elasticsearch 6.x版本后已被废弃,所有文档都属于索引的默认类型。 4. **节点(Node)**:运行Elasticsearch实例的服务器,节点之间可以相互连接形成...

Global site tag (gtag.js) - Google Analytics