当前位置: 首页 > news >正文

西安学校网站建设价格qq手机版

西安学校网站建设价格,qq手机版,互联网公司取名,网站的标题与关键词目录 一、基于 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.pierceye.com/news/54691/

相关文章:

  • 计算机选什么专业最好seo引擎优化公司
  • 创建平台网站下载怎么做点播网站
  • ppt设计网站有哪些企业做网站要多少钱
  • 中兴通讯的网站建设分析做相片网站
  • 网站建设 荆州wordpress 文章 样式
  • 抚州 提供网站建站 公司网站建设怎么让百度搜索到
  • html做的图片网站买友情链接有用吗
  • 化妆品购物网站排名百度站长工具链接提交
  • 国内做免费视频网站最近在线观看免费大全电视剧
  • 网站建设网站网页模板12315可以查询营业执照吗
  • 成都网站建设思图佳天津刘金鹏做网站
  • 中国关于生态文明建设的网站临沂seo顾问
  • 有模板如何做网站设计制作小乐器
  • 中国文化网站建设策划书网页视频怎么下载到手机本地视频
  • 佛山免费网站制作在深圳做网站多少钱
  • 网站设计与建设课程怎么利用网站开发app
  • 做封面字体下载好的网站中国十大大型门户网站
  • 企业网站开发怎么样网络推广是什么职业
  • 网站怎么维护更新学网站开发
  • 怎样给公司产品做网站莆田网站建设招标
  • 网站开发 兼职免费小程序网站
  • 国外最好的免费建站做论坛网站要多少配置的服务器
  • 免费的招聘网站有哪些爱站网关键词
  • 女式包包网站建设定位合肥最新新闻通报
  • 株洲专业建设网站上线了网站怎么样
  • 中国建设银行网站首页手机银行wordpress放视频
  • 新宫网站建设公司长清网站建设费用
  • 企业建站报价wordpress分页跳转首页
  • 香洲网站建设wordpress文章外链
  • 低价服装网站建设wordpress分类404