ElasticSearch的Java Api基本操作入门指南
2018-01-11 17:24
766 查看
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎框架。分布式是其最大的特点。安装比较简单,如果单机运行的话直接下载解压,在命令行下运行bin/elasticsearch就行了(win的dos和linux的窗口都行)。它能够通过http、restful、thrift等方式访问。不过今天我们看的是使用最普通的javaapi来测试其功能。
1.获取client实例,连接本地9300端口
2.生成一个索引。这里用Map来保存json数据,然后插入到index为“twitter”的索引里面,其document为“tweet”,id为“1”。当然,生成json数据的方法很多,朋友们可以查看相关api。
3.查询某个索引,这个一看就明白。
4.搜索,创建一个termQuery查询,该查询要求全部匹配才会出结果,如果只要包含关键字里面一部分,可以创建fieldQuery。
5.删除,删除的时候要指定Id的,这里指定id为1.
6.操作完毕后别忘记最后一步:关闭client连接。
查看源代码
打印帮助
总结:本文纯粹科普级,展示了一下ElasticSearch最基本的用法。
1.获取client实例,连接本地9300端口
1 | this .client = new TransportClient() |
2 |
3 | .addTransportAddress( new InetSocketTransportAddress( |
4 | "localhost" , 9300 )); |
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 outElasticSearch" ); |
6 |
7 | IndexResponse response= this .client |
8 | .prepareIndex( "twitter" , "tweet" , "1" ).setSource(json) |
9 | .execute().actionGet(); |
10 | } |
1 | public void getIndex() { |
2 | GetResponse "twitter" , "tweet" , "1" ) |
3 | .execute().actionGet(); |
4 | Map<String, |
5 | if (rpMap null ) { |
6 | System.out.println( "empty" ); |
7 | return ; |
8 | } |
9 | Iterator<Entry<String, |
10 | while (rpItor.hasNext()) { |
11 | Entry<String, |
12 | System.out.println(rpEnt.getKey() " + rpEnt.getValue()); |
13 | } |
14 | } |
1 | public void searchIndex() { |
2 |
3 | QueryBuilder "user" , "kimchy" ); |
4 | SearchResponse "twitter" ) |
5 | .setSearchType(SearchType.SCAN) |
6 | .setScroll( new TimeValue( 60000 )) |
7 | .setQuery(qb) |
8 | .setSize( 100 ).execute().actionGet(); //100 |
9 | //Scroll |
10 | while ( true ) { |
11 | scrollResp new TimeValue( 600000 )).execute().actionGet(); |
12 | for (SearchHit |
13 | Iterator<Entry<String, |
14 | while (rpItor.hasNext()) { |
15 | Entry<String, |
16 | System.out.println(rpEnt.getKey() " + rpEnt.getValue()); |
17 | } |
18 | } |
19 | //Break |
20 | if (scrollResp.getHits().hits().length 0 ) { |
21 | break ; |
22 | } |
23 | } |
24 | } |
1 | public void deleteIndex() { |
2 | DeleteResponse "twitter" , "tweet" , "1" ) |
3 | .execute() |
4 | .actionGet(); |
5 | } |
1 | public void closeClient() { |
2 | client.close(); |
3 | } |
相关文章推荐
- ElasticSearch的Java Api基本操作入门指南
- ElasticSearch的Java Api基本操作入门指南
- ElasticSearch的java API基本操作
- elasticsearch基本操作之--java基本操作 api
- Spark编程指南入门之Java篇二-基本操作
- elasticsearch基本操作之--java基本操作 api
- 基于Elasticsearch2.1.1的JavaAPI基本操作代码示例
- Spark编程指南入门之Java篇二-基本操作
- Spark编程指南入门之Java篇二-基本操作
- elasticsearch基本操作之--java基本操作 api
- Redis入门级指南---客户端命令基本操作
- mongodb基本命令和Java操作API示例
- 23、Java入门—反射之方法反射的基本操作
- Elasticsearch2.x手册 - 第1章 入门指南 - 1.1 基本概念
- java基础入门-----list容器的基本操作3
- ElasticSearch学习笔记-JavaAPI操作记录
- java基础入门-----list容器的基本操作2
- hbase快速入门-- java api 操作
- Elasticsearch Java-API CRUD Java操作Elasticsearch
- zookeeper JavaAPI入门操作