`

ElasticSearch的Java Api基本操作入门指南

阅读更多

ElasticSearch的Java Api基本操作入门指南

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎框架。分布式是其最大的特点。安装比较简单,如果单机运行的话直接下载解压,在命令行下运行bin/elasticsearch就行了(win的dos和linux的窗口都行)。它能够通过http、restful、thrift等方式访问。不过今天我们看的是使用最普通的java api来测试其功能。

 

java api
 
如果你使用java,Elasticsearch提供两种内置的客户端。
Node client
Transport client
 
两种clients都和集群通过9300端口通信,使用本地es传输协议,
注意:集群内部节点通过9300端口通信来组成集群。
 
java客户端的版本必须和服务器节点的版本一致。

 

1.获取client实例,连接本地9300端口

1 this.client = new TransportClient()
2    
3 .addTransportAddress(new InetSocketTransportAddress(
4 "localhost"9300));

2.生成一个索引。这里用Map来保存json数据,然后插入到index为“twitter”的索引里面,其document为“tweet”,id为“1”。当然,生成json数据的方法很多,朋友们可以查看相关api。

1 public void generateIndex() {
2   Map<String, Object> json = new HashMap<String, Object>();
3   json.put("user""kimchy");
4   json.put("postDate"new Date());
5   json.put("message""trying out Elastic Search");
6  
7   IndexResponse response = this.client
8     .prepareIndex("twitter""tweet""1").setSource(json)
9     .execute().actionGet();
10  }

3.查询某个索引 ,这个一看就明白。

1 public void getIndex() {
2   GetResponse response = client.prepareGet("twitter""tweet""1")
3     .execute().actionGet();
4   Map<String, Object> rpMap = response.getSource();
5   if (rpMap == null) {
6    System.out.println("empty");
7    return;
8   }
9   Iterator<Entry<String, Object>> rpItor = rpMap.entrySet().iterator();
10   while (rpItor.hasNext()) {
11    Entry<String, Object> rpEnt = rpItor.next();
12    System.out.println(rpEnt.getKey() + " : " + rpEnt.getValue());
13   }
14  }

4. 搜索,创建一个termQuery查询,该查询要求全部匹配才会出结果,如果只要包含关键字里面一部分,可以创建fieldQuery。

1 public void searchIndex() {
2  
3   QueryBuilder qb = QueryBuilders.termQuery("user""kimchy");
4   SearchResponse scrollResp = client.prepareSearch("twitter")
5           .setSearchType(SearchType.SCAN)
6           .setScroll(new TimeValue(60000))
7           .setQuery(qb)
8           .setSize(100).execute().actionGet(); //100 hits per shard will be returned for each scroll
9   //Scroll until no hits are returned
10   while (true) {
11       scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(newTimeValue(600000)).execute().actionGet();
12       for (SearchHit hit : scrollResp.getHits()) {
13        Iterator<Entry<String, Object>> rpItor = hit.getSource().entrySet().iterator();
14     while (rpItor.hasNext()) {
15      Entry<String, Object> rpEnt = rpItor.next();
16      System.out.println(rpEnt.getKey() + " : " + rpEnt.getValue());
17     }
18       }
19       //Break condition: No hits are returned
20       if (scrollResp.getHits().hits().length == 0) {
21           break;
22       }
23   }
24  }

5.删除,删除的时候要指定Id的,这里指定id为1.

1 public void deleteIndex() {
2   DeleteResponse response = client.prepareDelete("twitter""tweet""1")
3           .execute()
4           .actionGet();
5  }

6.操作完毕后别忘记最后一步:关闭client连接。

1 public void closeClient() {
2   client.close();
3  }

总结:本文纯粹科普级,展示了一下ElasticSearch最基本的用法。

 

from  http://www.dengchuanhua.com/159.html

分享到:
评论
3 楼 Ann-phei 2018-04-27  
大神 您好~我是博文视点编辑安娜,可否加我微信或QQ 8030 3489
2 楼 feifeiwudi 2017-11-10  
feifeiwudi 写道
发现了一个 Elasticsearch 2.3.3 JAVA api 翻译版的官方文档,还挺不错的,大家可以参考这个文档。
https://www.blog-china.cn/template/documentHtml/1484101683485.html#title_14

1 楼 feifeiwudi 2017-11-10  
发现了一个 Elasticsearch 2.3.3 JAVA api 翻译版的官方文档,还挺不错的,大家可以参考这个文档。
https://www.blog-china.cn

相关推荐

    Elasticsearch API

    Elasticsearch Java API是Elasticsearch提供的官方客户端之一,允许开发者通过Java代码来操作Elasticsearch,提供了一个更为便捷和安全的方式来与Elasticsearch集群交互。 入门Elasticsearch时,首先应该熟悉...

    Elastic Search搭建使用教程.pdf(内含ElasticSearch教程权威指南)

    Elasticsearch是一款基于Lucene的开源搜索引擎,它使用RESTful接口进行数据操作,数据以JSON格式存储。Elasticsearch以其高效的全文搜索功能,实时数据处理能力,以及易于使用的特性,在众多企业中得到了广泛应用,...

    elasticsearch2.x离线api

    这份PDF格式的Elasticsearch 2.x离线API文档为用户提供了全面、系统的学习资源,使用户能够在没有互联网访问的情况下快速掌握Elasticsearch的操作和管理。文档中包含的知识点非常丰富,涵盖了从基本概念到高级功能的...

    Elasticsearch 2.1.1 学习资料 java client demo 代码

    Elasticsearch 2.1.1服务端集群搭建.及java客户端demo代码实现。Elasticsearch权威指南(中文版,Elasticsearch java api 学习入门源码部署相关资料

    ElasticSearch 介绍

    ElasticSearch还提供了易于使用的Java API,便于Java开发者在Java应用程序中集成和使用ElasticSearch。 对于调试,可以使用Fiddler这样的工具来监控和调试ElasticSearch的HTTP请求和响应。确认ElasticSearch服务...

    elasticsearch简介及资源推荐

    - **《快速入门指南 |Elasticsearch 指南 [8.14] | Elastic》**:这是一个由Elastic官方提供的快速入门指南,它包含了设置环境、创建索引、执行查询等基础知识,非常适合初学者。 通过上述资源的学习,不仅可以...

    【elasticsearch】- Learning elasticsearch

    ### Elasticsearch 学习指南 #### 一、Elasticsearch 入门 **1.1 关于 Elasticsearch** Elasticsearch 是一款基于 Lucene 的开源搜索和分析引擎,它提供了分布式、实时的全文搜索功能,并且可以扩展到上百台...

    从入门到深入学习ES最全笔记

    Elasticsearch 基本操作** - **倒排索引**:Elasticsearch 使用倒排索引进行全文检索,它能快速找到包含特定单词的文档。倒排索引包含“单词词典”(记录所有单词)和“倒排文件”(记录每个单词在哪些文档中出现)...

    Android开发入门指南

    Android开发入门指南 Android是一种开源的操作系统,专为移动设备而设计,包括智能手机、平板电脑等。它由操作系统、中间件和一系列关键应用组成,为开发者提供了丰富的功能和自由度。Android SDK是开发者用Java...

    安卓 OpenGL ES 2.0 完全入门(一):基本概念和 hello world.docx

    安卓 OpenGL ES 2.0 入门指南 本文将详细介绍安卓 OpenGL ES 2.0 的基本概念和 hello world 项目,帮助读者快速入门 OpenGL ES 2.0 的世界。 基本概念 OpenGL ES 2.0 是一种用于移动设备的图形处理 API,能够提供...

    java8集合源码-udemy_ElasticSearch:udemy_ElasticSearch

    讲座:Elasticsearch 完整指南 重要更新:由于版本 7 类型将被删除,默认类型应替换为_doc类型 第 1 部分 - 入门 第 2 课 - Elasticsearch 介绍 Elasticsearch 是一个分析和全文搜索引擎。 它在应用程序中启用搜索...

    手机PDA程序设计入门-Game API入门.rar_PDA_game_手机

    总的来说,“手机PDA程序设计入门-Game API入门”是一份全面的指南,旨在帮助新手理解Game API的基本概念和实践方法。通过学习和实践其中的内容,开发者能够开始创建自己的手机或PDA游戏,逐步提升技能,最终在这个...

    Android中文API合集(7) + 开发者指南合集(2) (chm格式)

    1. **入门**:介绍如何设置开发环境,创建第一个Android项目,以及理解Android项目的基本结构。 2. **设计原则**:指导如何遵循Android的设计规范,创建符合用户体验的应用。 3. **组件模型**:讲解Activity、...

    解密搜索引擎技术实战++Lucene&amp;Java;精华版_.pdf

    总的来说,《解密搜索引擎技术实战——Lucene&Java精华版》是一本全面、深入的指南,不仅适合初学者入门,也对有经验的开发人员有很高的参考价值。通过阅读和实践,读者可以掌握搜索引擎的核心技术和Lucene的使用,...

    Elastic Stack 技术指南

    此外,还讲解了如何通过Elasticsearch的架构原理进行性能优化,包括shard的allocate控制、自动发现配置、增删改查操作、搜索请求、Painless脚本、reindex接口、segment、buffer和translog对实时性的影响,以及...

    use Java Developing Games.rar_game_games_java 手机_手机游戏

    4. OpenGL ES:作为移动设备上的图形API,用于实现高质量的2D和3D渲染。 文件"Developing Games In Java.chm"可能包含了详细的Java游戏开发教程或指南,涵盖了从基础概念到高级技巧的各个层面。而...

Global site tag (gtag.js) - Google Analytics