ElasticSearch入门之Bulk, Serach操作
来源:互联网 发布:微博小号淘宝没了 编辑:程序博客网 时间:2024/05/22 00:43
批量索引和删除
BulkRequestBuilder bulkRequest = client.prepareBulk(); for(int i=500;i<1000;i++){ //业务对象 String json = ESUtils.toJson(new LogModel()); IndexRequestBuilder indexRequest = client.prepareIndex("twitter", "tweet") //指定不重复的ID .setSource(json).setId(String.valueOf(i)); //添加到builder中 bulkRequest.add(indexRequest); } BulkResponse bulkResponse = bulkRequest.execute().actionGet(); if (bulkResponse.hasFailures()) { // process failures by iterating through each bulk response item System.out.println(bulkResponse.buildFailureMessage()); }
搜索(Search)
这里说的搜索仅仅是简单相等条件搜索,并没有涉及真正意义上的搜索。比如,我们要搜索前1000条记录,代码如下:
SearchResponse response = client.prepareSearch("twitter") //这个在prepareSearch中指定还不行,必须使用setTypes .setTypes("tweet") //设置查询条件, .setFilter(FilterBuilders.matchAllFilter()) .setFrom(0).setSize(1000) .execute() .actionGet(); /** * SearchHits是SearchHit的复数形式,表示这个是一个列表 */ SearchHits shs = response.getHits(); for(SearchHit hit : shs){ System.out.println("id:"+hit.getId()+":"+hit.getSourceAsString()); } client.close();
搜索有两种方法,一种是使用Filter进行搜索,一种是使用Query进行搜索,例如,想只搜索某个字段为具体值的数据,也可以这样写。
lient client = ESUtils.getClient(); /** * 创建查询条件,QueryBuilders相当于Hibernate的Restrictions, * 而QueryBuilder则相当于一个Criteria,可以不停的增加本身对象 */ BoolQueryBuilder query = QueryBuilders.boolQuery(); //systemName为字段名称,oa未字段值 query.must(QueryBuilders.termQuery("systemName", "oa")); SearchResponse response = client.prepareSearch("twitter") //这个在prepareSearch中指定还不行,必须使用setTypes .setTypes("tweet") //设置查询条件, .setQuery(query) .setFrom(0).setSize(60) .execute() .actionGet(); /** * SearchHits是SearchHit的复数形式,表示这个是一个列表 */ SearchHits shs = response.getHits(); for(SearchHit hit : shs){ System.out.println(hit.getSourceAsString()); } client.close();
这些只是使用ES的传统用法,就是想用ES取代传统数据库的用法。但其实ES的主要目的并非如此,相信你使用搜索引擎也不是想做这些简单的查询和插入。排名,分词等更高级的用法,我也没有完全搞清楚,还望大家多多指教。
0 0
- ElasticSearch入门之Bulk, Serach操作
- elasticSearch批量操作bulk
- elasticsearch bulk操作
- php使用Elasticsearch之批量操作(bulk)
- elasticsearch之批量提交Bulk
- elasticsearch api中的Bulk API操作
- Elasticsearch Bulk
- Elasticsearch的javaAPI之get,delete,bulk
- elasticsearch之Document APIs【Bulk API】
- 分布式搜索引擎elasticsearch PHP API index bulk 批量插入操作
- ElasticSearch实战 (二)CRUD以及bulk批量操作 api
- ElasticSearch Bulk 源码解析
- ElasticSearch之旅--入门
- Elasticsearch之基本操作
- Elasticsearch之基本操作
- Elasticsearch之基本操作
- ElasticSearch之CURL操作
- Elasticsearch之基本操作
- 团队晋升法则
- git使用1_基础应用
- svn恢复之前版本
- IOS 调用WebService(同步和异步)
- 摄像头的YUV
- ElasticSearch入门之Bulk, Serach操作
- 对函数的参数含义记忆错误
- North America - Greater NY 2013
- 第三周算法作业冒泡排序1114班
- 数据结构:栈的顺序结构及实现(C++)
- 中粮古船等多款面粉含致癌物 且无法检测
- YUV格式详解
- MYSQL的分区操作
- Unique Binary Search Trees(C语言)解题方法