Elasticsearch Java API (三):搜索
Elasticsearch Java API (三):搜索
基本的条件查询是这样的
QueryBuilder qb = termQuery("name", "2");
SearchResponse response = client.getClient().prepareSearch("gxk")
.setQuery(qb).setSize(100).execute().actionGet();
SearchHits hits = response.getHits();
System.out.println("\n成功匹配到"+hits.getTotalHits()+"条结果!\n");
if (hits.totalHits() > 0)
for (SearchHit hit : hits) System.out.println("搜索结果:/"+hit.getIndex()+"/"+hit.getType()+"/"+hit.getSourceAsString());
这里的client是(一)中定义的MyClient gxk是索引名称 setsize不用的话默认输出10条结果 name和2意思是查找name字段为2的
待续。。。
/*** * bulk方式快速录入数据 * * @param client 连接客户端 * @param jsonBuilder 构造json数据->创建XContentBuilder x=jsonBuilder().startObject.... * @param index 在索引中创建数据 * @param type 在类型中创建数据 * @throws InterruptedException * @throws IOException */ public static void insertDocs(MyClient client, XContentBuilder jsonBuilder, String index, String type) throws InterruptedException, IOException { BulkProcessor bulkProcessor = ElasticUtils.getBulkProcess(client); long begin = System.currentTimeMillis(); Integer count = 1; for (int i = 1; i <= count; i++) { bulkProcessor.add(new IndexRequest(index, type, UUID.randomUUID().toString()).source(jsonBuilder)); System.out.println("耗时:" + (System.currentTimeMillis() - begin) / 1000 + "秒 完成 " + 100 * 1.0 * i / count + "%"); } ElasticUtils.closeBulkProcessor(bulkProcessor); }
联系邮箱 forgeekscn@gmail.cn
个人网站 http://forgeeks.cn
QQ 783808649

浙公网安备 33010602011771号