java 访问es数据库_ES基本语法的Java客户端操作

public classTest02 {

RestHighLevelClient client;//1.创建searchRequest请求对象

SearchRequest searchRequest = new SearchRequest("root02");//2.创建searchSourceBuilder对象-->封装查询对象

SearchSourceBuilder searchSourceBuilder = newSearchSourceBuilder();

@BeforeEachpublic voidbefore() {

client= newRestHighLevelClient(

RestClient.builder(new HttpHost("62.234.118.219", 9902, "http")));

}/*查询所有*/@Testpublic void matchAll() throwsIOException {//创建查询对象QueryBuilder

QueryBuilder queryBuilder =QueryBuilders.matchAllQuery();//封装查询对象

searchSourceBuilder.query(queryBuilder);//searchSourceBuilder封装到searchRequest对象中

searchRequest.source(searchSourceBuilder);

showContext();

}/*模糊匹配查询*/@Testpublic void matchDoc() throwsIOException {//3.创建查询对象

QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", "小米");

searchSourceBuilder.query(queryBuilder);

searchRequest.source(searchSourceBuilder);//发送请求

showContext();

}/*精确查询,一般用于查询不分词字段*/@Testpublic void term() throwsIOException {

QueryBuilder queryBuilder= QueryBuilders.termQuery("price", 2706);

searchSourceBuilder.query(queryBuilder);

searchRequest.source(searchSourceBuilder);

showContext();

}//排序,高亮,分页查询

@Testpublic void commons() throwsIOException {

QueryBuilder queryBuilder= QueryBuilders.matchQuery("title", "小米");

searchSourceBuilder.query(queryBuilder);/*排序

//默认升序排序

分页:

size: 页大小

from: 起始索引位置 int start = (pagenum -1) * pagesize_

高亮:设置条件

前置标签:

后置标签:

高亮字段:*/HighlightBuilder highlightBuilder= newHighlightBuilder();

highlightBuilder.preTags("");

highlightBuilder.postTags("");

highlightBuilder.field("title");

searchSourceBuilder.sort("price", SortOrder.ASC).from(4).size(2).highlighter(highlightBuilder);

searchRequest.source(searchSourceBuilder);

SearchResponse searchResponse=client.search(searchRequest, RequestOptions.DEFAULT);//7.解析结果

SearchHits searchHits =searchResponse.getHits();if (null !=searchHits) {

SearchHit[] hits=searchHits.getHits();for(SearchHit hit : hits) {

String sourceAsString=hit.getSourceAsString();

System.out.println("查询结果:" +sourceAsString);/*高亮结果解析*/Map highlightFields =hit.getHighlightFields();if (!highlightFields.isEmpty()) {

Text title= highlightFields.get("title").getFragments()[0];

System.out.println("高亮结果: " +title);

}

}

}

}//封装请求和打印数据

public void showContext() throwsIOException {//发送请求

SearchResponse searchResponse =client.search(searchRequest, RequestOptions.DEFAULT);//解析结果

SearchHits searchHits =searchResponse.getHits();if (null !=searchHits) {

SearchHit[] hits=searchHits.getHits();for(SearchHit hit : hits) {

String sourceAsString=hit.getSourceAsString();

System.out.println("查询结果:" +sourceAsString);

}

}

}

@AfterEachpublic void close() throwsIOException {

client.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值