建手机号码的网站,重庆建设工程造价网官网,快速网站排名,农村基本制度建设网站目录
一、基于 JavaRestClient 查询文档
1.1、查询 API 演示
1.1.1、查询基本框架
DSL 请求的对应格式
响应的解析
1.1.2、全文检索查询
1.1.3、精确查询
1.1.4、复合查询
1.1.5、排序和分页
1.1.6、高亮 一、基于 JavaRestClient 查询文档 1.1、查询 API 演示
1.1.…目录
一、基于 JavaRestClient 查询文档
1.1、查询 API 演示
1.1.1、查询基本框架
DSL 请求的对应格式
响应的解析
1.1.2、全文检索查询
1.1.3、精确查询
1.1.4、复合查询
1.1.5、排序和分页
1.1.6、高亮 一、基于 JavaRestClient 查询文档 1.1、查询 API 演示
1.1.1、查询基本框架
接下里通过一个 match_all 查询所有来演示以下基本的 API. Testpublic void testMatchAll() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.matchAllQuery());//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}/*** 处理响应* param response*/private void handlerResponse(SearchResponse response) {//1.解析结果SearchHits hits response.getHits();//获取总条数long total hits.getTotalHits().value;SearchHit[] hits1 hits.getHits();for(SearchHit searchHit : hits1) {//获取sourceString json searchHit.getSourceAsString();System.out.println(json);}}由上可以看出查询的基本步骤如下
创建 SeaechRequest 对象指定索引库.Request.source() 准备参数也就是 DSL. 通过 QueryBuilders 构建查询条件.传入 Request.source() 的 query() 方法构建好完整的查询.发送请求得到结果.解析结果又外而内逐层解析. DSL 请求的对应格式 DSL 语句的构建是通过 HighLevelRestClient 中的 Resource 实现的其中包含了 查询、排序】分页、高亮等所有功能. 其中 query 表示查询的意思他的查询条件的是由 QueryBuilders 的工具类提供的包含了各种查询方法. 响应的解析 响应解析这里可以在 Kibana 上通过查询结果对比着看出 API 的调用关系. 1.1.2、全文检索查询
全文检索的 match 和 multi_match 查询和前面演示的 match_all 调用的 API 基本一致差别就是查询条件也就是 query 部分通过 QueryBuilders 构建的条件不一样. Testpublic void testMatch() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.matchQuery(brand, 如家));//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}multi_match 也是如此只是可以支持多个参数查询. Testpublic void testMultiMatch() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.multiMatchQuery(如家, brand, name));//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}运行结果 1.1.3、精确查询
精确查询常见的有 term 查询 和 range 查询同样利用 QueryBuilders 实现. Testpublic void testTerm() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.termQuery(city, 上海));//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}range 查询也是如此. Testpublic void testRange() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.rangeQuery(price).gte(100).lte(200)); //链式调用//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}1.1.4、复合查询
布尔查询是一个或多个查询子句的组合. 子查询的组合方式有
must必须匹配的查询条件类似 “与”.should选择性匹配的查询条件类似 “或”.must_not必须不匹配不参与算分类似 “非”.filter必须匹配不参与算分
RestAPI 中也提供 BoolQueryBuilder 条件构建方法用来添加上述条件. Testpublic void testBoolQuery() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数BoolQueryBuilder booleanQuery QueryBuilders.boolQuery();booleanQuery.must(QueryBuilders.termQuery(city, 上海));booleanQuery.filter(QueryBuilders.rangeQuery(price).lte(200));request.source().query(booleanQuery); //链式调用//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}1.1.5、排序和分页
对于搜索结果的排序和分页与 query 是同级参数对应 API 如下. Testpublic void testFromSize() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.matchAllQuery());//分页 offset20 size10request.source().from(20).size(10);//降序排序request.source().sort(price, SortOrder.DESC);//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}1.1.6、高亮
高亮的 API 包括请求构建 DSL 语句 和 结果解析 两个部分.
请求构建如下 Testpublic void testHighLighter() throws IOException {//1.准备 SearchRequestSearchRequest request new SearchRequest(hotel);//2.准备参数request.source().query(QueryBuilders.matchQuery(brand, 如家));request.source().highlighter(new HighlightBuilder().field(name).requireFieldMatch(false));//3.发送请求并接收响应SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应handlerResponse(response);}响应解析如下 private void handlerResponse(SearchResponse response) throws JsonProcessingException {//1.解析结果SearchHits hits response.getHits();//获取总条数long total hits.getTotalHits().value;SearchHit[] hits1 hits.getHits();for(SearchHit searchHit : hits1) {//获取sourceString json searchHit.getSourceAsString();System.out.println(json);//2.处理高亮//获取高亮MapString, HighlightField highlightFieldMap searchHit.getHighlightFields();if(!CollectionUtils.isEmpty(highlightFieldMap)) {//获取高亮字段的 valueHighlightField highlightField highlightFieldMap.get(name);if(highlightField ! null) {//取出高亮结果数组中的第一个这里是酒店名称String name highlightField.getFragments()[0].string();//对高亮字段的处理(这里打印做演示)System.out.println(name);}}}}运行后可以看到通过 sout 打印出的“高亮”字段最后会传输给前端 让前端处理高亮. 后端只是标记出了哪些字段需要高亮处理 文章转载自: http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn http://www.morning.lhrxq.cn.gov.cn.lhrxq.cn http://www.morning.jxrpn.cn.gov.cn.jxrpn.cn http://www.morning.bzbq.cn.gov.cn.bzbq.cn http://www.morning.phechi.com.gov.cn.phechi.com http://www.morning.kjxgc.cn.gov.cn.kjxgc.cn http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn http://www.morning.lsssx.cn.gov.cn.lsssx.cn http://www.morning.nckzt.cn.gov.cn.nckzt.cn http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.mngyb.cn.gov.cn.mngyb.cn http://www.morning.hqykb.cn.gov.cn.hqykb.cn http://www.morning.npqps.cn.gov.cn.npqps.cn http://www.morning.qggcc.cn.gov.cn.qggcc.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.mqpdl.cn.gov.cn.mqpdl.cn http://www.morning.rxlk.cn.gov.cn.rxlk.cn http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn http://www.morning.jkpnm.cn.gov.cn.jkpnm.cn http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn http://www.morning.ptslx.cn.gov.cn.ptslx.cn http://www.morning.hhxkl.cn.gov.cn.hhxkl.cn http://www.morning.yzxhk.cn.gov.cn.yzxhk.cn http://www.morning.qdlr.cn.gov.cn.qdlr.cn http://www.morning.gxcit.com.gov.cn.gxcit.com http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn http://www.morning.xknsn.cn.gov.cn.xknsn.cn http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn http://www.morning.rcqyk.cn.gov.cn.rcqyk.cn http://www.morning.tjwfk.cn.gov.cn.tjwfk.cn http://www.morning.lffbz.cn.gov.cn.lffbz.cn http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn http://www.morning.dtpqw.cn.gov.cn.dtpqw.cn http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn http://www.morning.mszls.cn.gov.cn.mszls.cn http://www.morning.qwgct.cn.gov.cn.qwgct.cn http://www.morning.xqjh.cn.gov.cn.xqjh.cn http://www.morning.ftdlg.cn.gov.cn.ftdlg.cn http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn http://www.morning.kbqbx.cn.gov.cn.kbqbx.cn http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn http://www.morning.xznrk.cn.gov.cn.xznrk.cn http://www.morning.trlhc.cn.gov.cn.trlhc.cn http://www.morning.rhmpk.cn.gov.cn.rhmpk.cn http://www.morning.yqkmd.cn.gov.cn.yqkmd.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.wjpsn.cn.gov.cn.wjpsn.cn http://www.morning.pflpb.cn.gov.cn.pflpb.cn http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.gllgf.cn.gov.cn.gllgf.cn http://www.morning.yubkwd.cn.gov.cn.yubkwd.cn http://www.morning.jppb.cn.gov.cn.jppb.cn http://www.morning.ptysj.cn.gov.cn.ptysj.cn http://www.morning.rjbb.cn.gov.cn.rjbb.cn http://www.morning.dbphz.cn.gov.cn.dbphz.cn http://www.morning.jbmsp.cn.gov.cn.jbmsp.cn http://www.morning.wmdbn.cn.gov.cn.wmdbn.cn http://www.morning.cdrzw.cn.gov.cn.cdrzw.cn http://www.morning.jmnfh.cn.gov.cn.jmnfh.cn http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.hympq.cn.gov.cn.hympq.cn http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn http://www.morning.ypnxq.cn.gov.cn.ypnxq.cn http://www.morning.kjlia.com.gov.cn.kjlia.com http://www.morning.mrckk.cn.gov.cn.mrckk.cn http://www.morning.ccsdx.cn.gov.cn.ccsdx.cn http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn http://www.morning.wdnkp.cn.gov.cn.wdnkp.cn http://www.morning.grynb.cn.gov.cn.grynb.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.rmltt.cn.gov.cn.rmltt.cn http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn http://www.morning.tdhxp.cn.gov.cn.tdhxp.cn http://www.morning.sltfk.cn.gov.cn.sltfk.cn http://www.morning.yhywx.cn.gov.cn.yhywx.cn