1、添加maven依赖
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>0.90.0</version>
</dependency>
建议使用maven管理项目,因为elasticsearch还有很多依赖包,手工维护很麻烦
2、创建连接elasticsearch服务的client
Settings settings = ImmutableSettings.settingsBuilder().put("client.transport.sniff", true).put("cluster.name", "name of node").build();
Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("ip of server", 9300));
3、创建索引
elasticsearch的java客户端,支持多种方式构建索引数据,这里有两种方式的代码示例:使用jsonbuilder构建数据
IndexResponse response = client.prepareIndex("comment_index", "comment_ugc", "comment_123674")
.setSource( XContentFactory.jsonBuilder()
.startObject()
.field("author", "569874")
.field("author_name", "riching")
.field("mark", 232)
.field("body", "北京不错,但是人太多了")
.field("createDate", "20130801175520")
.field("valid", true)
.endObject())
.setTTL(8000)
.execute().actionGet();
System.out.println(response.getId());
另外一种,是把数据构造成json串,直接传给client
Student student = new Student(103161066, 20, "riching", "beijing");
String jsonValue = mapper.writeValueAsString(student);
response = client.prepareIndex("student_index", "student_info", "stu_103161066").setSource(jsonValue).execute().actionGet();
System.out.println(response.getId());
实际应用中应该是下面一种更方便,可以把需要索引的对象直接扔过去了
4、根据id获取数据
GetResponse responseGet = client.prepareGet("comment_index", "comment_ugc", "comment_123674").execute().actionGet();
System.out.println(responseGet.getSourceAsString());
5、查询索引
SearchRequestBuilder builder = client.prepareSearch("comment_index").setTypes("comment_ugc").setSearchType(SearchType.DEFAULT).setFrom(0).setSize(100);
BoolQueryBuilder qb = QueryBuilders.boolQuery().must(new QueryStringQueryBuilder("北京").field("body"))
.should(new QueryStringQueryBuilder("太多").field("body"));
builder.setQuery(qb);
SearchResponse response = builder.execute().actionGet();
System.out.println(" " + response);
System.out.println(response.getHits().getTotalHits());
执行结果
{
"took" : 8,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.19178301,
"hits" : [ {
"_index" : "comment_index",
"_type" : "comment_ugc",
"_id" : "comment_123674",
"_score" : 0.19178301, "_source" : {"author":"569874","author_name":"riching","mark":232,"body":"北京不错,但是人太多了","createDate":"20130801175520","valid":true}
} ]
}
}
1
6、删除索引,可以根据索引id删除索引,也可以构造query进行删除,这跟lucene的api是类似的,只不过api不一样而已
DeleteResponse response = client.prepareDelete("comment_index", "comment_ugc", "comment_123674") .setOperationThreaded(false).execute().actionGet();
System.out.println(response.getId());
这个删除有个小问题,如果删除完立即进行查询还是可以查到
分享到:
相关推荐
lasticsearch整合分词、创建索引、搜索例子,elasticsearch版本为1.0,索引数据从数据表中动态读取生成,有关键字高亮效果,查询分页 1 在dababase目录中导致相关的数据库文件,修改DBCOperation java文件数据库连接...
演示如何使用Elasticsearch Java API 该存储库演示了如何通过Java High Level REST Client使用Elasticsearch Java API。 如果要查看旧版本的示例,请访问分支。您将在此存储库中学到什么? 如何使用Java高级REST...
在 centos7 上搭建 elasticsearch时,发生了一些报错,总结如下: 1. Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate ...
测试弹性搜索数据 elasticsearch 1.4.4 java代码的搜索数据 运行 hiii.java 自动创建 hiii 索引,类型=成员,访问,登录,产品 运行 Fanlike.java 测试 Es 搜索数据
内容抓取该项目包含用于访问Mendeley API和Contentful API并在Elastic Search索引中对其进行索引的搜寻器代码。门德利爬网Mendeley API需要通过以下方式创建的应用程序密钥和机密: 在上创建一个帐户点击“我的应用...
4、启动ElasticSearch测试效果,在Chrome浏览器中访问: http://localhost:9200/_analyze?analyzer=word&text=杨尚川是APDPlat应用级产品开发平台的作者 5、自定义配置 将word.local.conf复制到elasticsearch-...
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他可以对你的日志进行...
20.3.5 使用索引添加另一个三角形 20.3.6 为简单的OpenGL三角形制作动画 20.4 OpenGL的运用:形状和纹理 20.4.1 绘制矩形 20.4.2 使用形状 20.4.3 使用纹理 20.4.4 绘制多个图形 20.5 OpenGL ...
20.3.5 使用索引添加另一个三角形 20.3.6 为简单的OpenGL三角形制作动画 20.4 OpenGL的运用:形状和纹理 20.4.1 绘制矩形 20.4.2 使用形状 20.4.3 使用纹理 20.4.4 绘制多个图形 20.5 OpenGL ...
6.3.4 创建索引 241 6.3.5 创建视图 241 6.3.6 操作数据 243 6.3.7 将Cursor绑定到AdapterView 250 6.4 Content Provider 254 6.4.1 概述 254 6.4.2 Content Provider加载机制 256 6.4.3 创建Content Provider 257 ...
2、如何创建,使用,编辑以及管理存储在GEODATABASE数据模型中空间数据和属性数据 主讲人:GIS硕士、南京路川公司专业技术开发工程师 3、以ARCCIS9的功能结构主线,学习利用ARCCIS进行数据输入,数据编辑,地图配标...