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微信公众号:
相关推荐
本示例代码是关于如何在Java环境中使用Elasticsearch进行操作的一个实例。 在Java中,我们通常使用官方提供的`Elasticsearch Java Client`来与Elasticsearch服务器进行交互。`com.text.elasticsearch`这个文件夹...
总的来说,这个压缩包提供的"elasticsearch demo示例"是一个很好的学习资源,它涵盖了Elasticsearch的基础使用,包括索引管理、文档操作和搜索功能,同时展示了如何利用protobuf进行数据交换。通过学习和运行这个...
Elasticsearch 使用说明书整合篇详细解析 Elasticsearch(ES)是一种分布式、RESTful风格的搜索和数据分析引擎,常用于大数据分析和实时搜索场景。它不依赖传统的SQL数据库语句,而是采用JSON文档格式和HTTP协议...
同时,Elasticsearch提供了丰富的API,如GET、POST、PUT、DELETE等,用于对索引、文档的操作。 对于搜索功能,Elasticsearch支持丰富的查询语法,包括全文搜索、精确匹配、范围查询、布尔组合查询等。其内部使用倒...
1. **节点(Node)**:每个运行Elasticsearch的实例称为一个节点。节点可以独立工作,也可以组建成集群协同工作。 2. **集群(Cluster)**:由一个或多个节点组成,它们共享相同的集群名称,共同管理索引和数据。 3. *...
4. **权限**:由于安全考虑,确保Elasticsearch运行用户有正确的权限,可以使用`chown`命令改变文件所有权,如`chown -R user:group .`,将所有文件属主改为特定用户和组。 5. **启动**:运行`bin/elasticsearch`...
1. **集群(Cluster)**:一组Elasticsearch节点,它们共享相同的集群名称,共同存储和管理数据。 2. **节点(Node)**:运行Elasticsearch实例的服务器,可以加入或离开集群。 3. **路由与分片**:数据在节点间...
Elasticsearch Cluster 是一组连接在一起的一个或多个 Elasticsearch 节点实例。Elasticsearch 集群的功能在于在集群中的所有节点之间分配任务,进行搜索和建立索引。 Elasticsearch Node 是 Elasticsearch 的实例...
文档(Document)是Elasticsearch中的基础概念,是存储在索引(Index)中的数据项,相当于关系数据库中表的一行记录。每个文档可以有不同的字段,字段类型定义了文档的结构。每个文档通过唯一标识符(Id)来索引,...
Elasticsearch 5.5.0 是一个高度可扩展、实时的搜索和分析引擎,广泛应用于日志分析、全文检索、性能监控等多个领域。作为一款分布式、RESTful 风格的搜索引擎,它允许开发者通过简单的 HTTP 请求进行数据索引、搜索...
- **Index**: 索引是一组文档的集合,类似于关系数据库中的表。 - **Document**: 文档是索引中的最小单位,类似于数据库表中的行。 - **Type**: 在ElasticSearch中,类型表示同一索引内的不同类别。在新版中,...
1. **倒排索引(Inverted Index)**:这是ElasticSearch的核心技术之一,它通过将文档中的词汇与包含这些词汇的文档列表相关联,从而实现快速搜索。 2. **分片和复制(Sharding and Replication)**:为了提高可用性和...
- **Document(文档)**: 索引内的一条记录,由一组键值对组成。 - **Cluster(集群)**: 一个或多个ElasticSearch节点的集合,共同维护数据和提供联合索引/搜索功能。 - **Node(节点)**: 单个ElasticSearch实例,...
- **索引**:一组文档的集合。 - **类型**:已废弃的概念,以前用于对索引中的文档进行分类。 - **文档**:包含具体数据的单位。 - **字段**:文档中的具体属性。 #### 四、ElasticSearch 特点与优势 - **分布式...
- **索引(Index)**: 在Elasticsearch中,索引是一个存储文档的逻辑空间,类似于关系数据库中的表。 - **类型(Type)**: 类型是索引中的逻辑分类,尽管在Elasticsearch 5后已被弃用,但在本笔记中仍然会提及,以...
- 使用Elasticsearch的 `_cat` API 和 Kibana 的监视器来定期检查集群健康状况、节点状态、索引分配等。 10. **安全性与权限**: - 通过X-Pack或Open Distro for Elasticsearch插件提供认证、授权、审计和加密等...
节点是Elasticsearch运行的单个实例,可以连接形成一个集群,集群则是一组协同工作的节点,共同存储数据并处理搜索请求。索引是存储和检索数据的主要方式,相当于关系数据库中的数据库;文档是索引中的基本存储单元...
3. **近似倒排索引**:Elasticsearch 使用倒排索引机制,能快速定位到包含特定关键词的文档。 4. **RESTful API**:Elasticsearch 提供了基于 HTTP 的 RESTful API,使得与其他系统集成变得简单。 5. **水平扩展**...
3. **类型(Type)**:每个索引可以包含一种或多种类型,但在Elasticsearch 6.x版本后已被废弃,所有文档都属于索引的默认类型。 4. **节点(Node)**:运行Elasticsearch实例的服务器,节点之间可以相互连接形成...