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()
|
3 |
.addTransportAddress( new InetSocketTransportAddress(
|
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" );
|
7 |
IndexResponse response = this .client
|
8 |
.prepareIndex( "twitter" , "tweet" , "1" ).setSource(json)
|
9 |
.execute().actionGet();
|
3.查询某个索引 ,这个一看就明白。
1 |
public void getIndex() {
|
2 |
GetResponse response = client.prepareGet( "twitter" , "tweet" , "1" )
|
3 |
.execute().actionGet();
|
4 |
Map<String, Object> rpMap = response.getSource();
|
6 |
System.out.println( "empty" );
|
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());
|
4. 搜索,创建一个termQuery查询,该查询要求全部匹配才会出结果,如果只要包含关键字里面一部分,可以创建fieldQuery。
1 |
public void searchIndex() {
|
3 |
QueryBuilder qb = QueryBuilders.termQuery( "user" , "kimchy" );
|
4 |
SearchResponse scrollResp = client.prepareSearch( "twitter" )
|
5 |
.setSearchType(SearchType.SCAN)
|
6 |
.setScroll( new TimeValue( 60000 ))
|
8 |
.setSize( 100 ).execute().actionGet();
|
11 |
scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll( new TimeValue( 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());
|
20 |
if (scrollResp.getHits().hits().length == 0 ) {
|
5.删除,删除的时候要指定Id的,这里指定id为1.
1 |
public void deleteIndex() {
|
2 |
DeleteResponse response = client.prepareDelete( "twitter" , "tweet" , "1" )
|
6.操作完毕后别忘记最后一步:关闭client连接。
1 |
public void closeClient() {
|
总结:本文纯粹科普级,展示了一下ElasticSearch最基本的用法。
from http://www.dengchuanhua.com/159.html
分享到:
相关推荐
Elasticsearch Java API是Elasticsearch提供的官方客户端之一,允许开发者通过Java代码来操作Elasticsearch,提供了一个更为便捷和安全的方式来与Elasticsearch集群交互。 入门Elasticsearch时,首先应该熟悉...
Elasticsearch是一款基于Lucene的开源搜索引擎,它使用RESTful接口进行数据操作,数据以JSON格式存储。Elasticsearch以其高效的全文搜索功能,实时数据处理能力,以及易于使用的特性,在众多企业中得到了广泛应用,...
这份PDF格式的Elasticsearch 2.x离线API文档为用户提供了全面、系统的学习资源,使用户能够在没有互联网访问的情况下快速掌握Elasticsearch的操作和管理。文档中包含的知识点非常丰富,涵盖了从基本概念到高级功能的...
Elasticsearch 2.1.1服务端集群搭建.及java客户端demo代码实现。Elasticsearch权威指南(中文版,Elasticsearch java api 学习入门源码部署相关资料
ElasticSearch还提供了易于使用的Java API,便于Java开发者在Java应用程序中集成和使用ElasticSearch。 对于调试,可以使用Fiddler这样的工具来监控和调试ElasticSearch的HTTP请求和响应。确认ElasticSearch服务...
- **《快速入门指南 |Elasticsearch 指南 [8.14] | Elastic》**:这是一个由Elastic官方提供的快速入门指南,它包含了设置环境、创建索引、执行查询等基础知识,非常适合初学者。 通过上述资源的学习,不仅可以...
### Elasticsearch 学习指南 #### 一、Elasticsearch 入门 **1.1 关于 Elasticsearch** Elasticsearch 是一款基于 Lucene 的开源搜索和分析引擎,它提供了分布式、实时的全文搜索功能,并且可以扩展到上百台...
Elasticsearch 基本操作** - **倒排索引**:Elasticsearch 使用倒排索引进行全文检索,它能快速找到包含特定单词的文档。倒排索引包含“单词词典”(记录所有单词)和“倒排文件”(记录每个单词在哪些文档中出现)...
Android开发入门指南 Android是一种开源的操作系统,专为移动设备而设计,包括智能手机、平板电脑等。它由操作系统、中间件和一系列关键应用组成,为开发者提供了丰富的功能和自由度。Android SDK是开发者用Java...
安卓 OpenGL ES 2.0 入门指南 本文将详细介绍安卓 OpenGL ES 2.0 的基本概念和 hello world 项目,帮助读者快速入门 OpenGL ES 2.0 的世界。 基本概念 OpenGL ES 2.0 是一种用于移动设备的图形处理 API,能够提供...
讲座:Elasticsearch 完整指南 重要更新:由于版本 7 类型将被删除,默认类型应替换为_doc类型 第 1 部分 - 入门 第 2 课 - Elasticsearch 介绍 Elasticsearch 是一个分析和全文搜索引擎。 它在应用程序中启用搜索...
总的来说,“手机PDA程序设计入门-Game API入门”是一份全面的指南,旨在帮助新手理解Game API的基本概念和实践方法。通过学习和实践其中的内容,开发者能够开始创建自己的手机或PDA游戏,逐步提升技能,最终在这个...
1. **入门**:介绍如何设置开发环境,创建第一个Android项目,以及理解Android项目的基本结构。 2. **设计原则**:指导如何遵循Android的设计规范,创建符合用户体验的应用。 3. **组件模型**:讲解Activity、...
总的来说,《解密搜索引擎技术实战——Lucene&Java精华版》是一本全面、深入的指南,不仅适合初学者入门,也对有经验的开发人员有很高的参考价值。通过阅读和实践,读者可以掌握搜索引擎的核心技术和Lucene的使用,...
此外,还讲解了如何通过Elasticsearch的架构原理进行性能优化,包括shard的allocate控制、自动发现配置、增删改查操作、搜索请求、Painless脚本、reindex接口、segment、buffer和translog对实时性的影响,以及...
4. OpenGL ES:作为移动设备上的图形API,用于实现高质量的2D和3D渲染。 文件"Developing Games In Java.chm"可能包含了详细的Java游戏开发教程或指南,涵盖了从基础概念到高级技巧的各个层面。而...