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

国家卫生健康委党校官网seo

国家卫生健康委党校,官网seo,武汉百度竞价托管,深圳市住房和建设局投诉电话目录 一、实现输入搜索功能 1、下载代码,在idea上打开 2、新建RequestParams类,用于接收解析请求 3、在启动类中加入客户端地址Bean,以便实现服务 4、编写搜索方法 5、新建返回分页结果类 6、实现搜索方法 7、编写控制类,…

目录

一、实现输入搜索功能

1、下载代码,在idea上打开

2、新建RequestParams类,用于接收解析请求

3、在启动类中加入客户端地址Bean,以便实现服务

4、编写搜索方法

5、新建返回分页结果类

6、实现搜索方法

7、编写控制类,接收请求

8、运行代码,测试功能

(1)检索功能

(2)分页功能

二、添加品牌、城市、星级、价格等过滤功能

1、修改RequestParams类

2、更改service类

3、启动并测试

三、实现排序功能

1、修改RequestParams类

2、在PageResult类中增加排序算法

3、修改HotelDoc类,增加Distance属性

4、修改解析JSON的方法

四、实现广告置顶功能

1、修改HotelDoc类,增加isAD属性

2、在service实现类中添加算分方法

3、运行测试


一、实现输入搜索功能

1、下载代码,在idea上打开

2、新建RequestParams类,用于接收解析请求

@Data
public class RequestParams {private String key;private Integer page;private Integer size;private String sortBy;
}

3、在启动类中加入客户端地址Bean,以便实现服务

@Beanpublic RestHighLevelClient client(){return new RestHighLevelClient(RestClient.builder(HttpHost.create("http://192.168.248.152:9200")));}

4、编写搜索方法

PageResult search(RequestParams params);

5、新建返回分页结果类

@Data
public class PageResult {private long total;private List<HotelDoc> hotels;public PageResult() {}public PageResult(long total, List<HotelDoc> hotels) {this.total = total;this.hotels = hotels;}
}

6、实现搜索方法

@Service
public class HotelService extends ServiceImpl<HotelMapper, Hotel> implements IHotelService {@Autowiredprivate RestHighLevelClient client;@Overridepublic PageResult search(RequestParams params) {
//      准备Request对象try {SearchRequest request = new SearchRequest("hotel");String key = params.getKey();
//      准备DSLif (key==null || "".equals(key)){request.source().query(QueryBuilders.matchAllQuery());}else {request.source().query(QueryBuilders.matchQuery("name", key));}
//        分页Integer page = params.getPage();Integer size = params.getSize();request.source().from((page-1)*size).size(size);
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);return extracted(response);} catch (IOException e) {throw new RuntimeException(e);}}private PageResult extracted(SearchResponse response) {
//      解析响应SearchHits searchHits = response.getHits();
//      获取总条数long value = searchHits.getTotalHits().value;System.out.println("共搜索到" + value + "条数据!");
//      获取文档数组SearchHit[] hits = searchHits.getHits();ArrayList<HotelDoc> list = new ArrayList<>();
//      遍历for (SearchHit hit : hits) {
//          获取文档sourceString json = hit.getSourceAsString();
//          反序列化HotelDoc object = JSON.parseObject(json, HotelDoc.class);list.add(object);
//          获取高亮结果Map<String, HighlightField> highlightFields = hit.getHighlightFields();if (!CollectionUtils.isEmpty(highlightFields)){
//              根据字段名获取高亮结果HighlightField highlightField = highlightFields.get("name");if (highlightFields != null){
//                  获取高亮值String name = highlightField.getFragments()[0].string();
//                  覆盖非高亮结果object.setName(name);}}
//            System.out.println("object = " + object);}return new PageResult(value,list);}
}

7、编写控制类,接收请求

@RestController
@RequestMapping("/hotel")
public class HotelController {@Autowiredprivate IHotelService service;@PostMapping("/list")public PageResult search(@RequestBody RequestParams params){return service.search(params);}
}

8、运行代码,测试功能

(1)检索功能

(2)分页功能

二、添加品牌、城市、星级、价格等过滤功能

1、修改RequestParams类

@Data
public class RequestParams {private String key;private Integer page;private Integer size;private String sortBy;private String city;private String brand;private String starName;private Integer maxPrice;private Integer minPrice;
}

2、更改service类

    @Overridepublic PageResult search(RequestParams params) {
//       准备Request对象try {SearchRequest request = new SearchRequest("hotel");buildBasicQuery(params, request);
//        分页Integer page = params.getPage();Integer size = params.getSize();request.source().from((page-1)*size).size(size);
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);return extracted(response);} catch (IOException e) {throw new RuntimeException(e);}}private void buildBasicQuery(RequestParams params, SearchRequest request) {String key = params.getKey();BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();if (key==null || "".equals(key)){boolQuery.must(QueryBuilders.matchAllQuery());}else {boolQuery.must(QueryBuilders.matchQuery("all", key));}
//         城市条件if (params.getCity() != null && !params.getCity().equals("")){boolQuery.filter(QueryBuilders.termQuery("city", params.getCity()));}
//         品牌条件if (params.getBrand() != null && !params.getBrand().equals("")){boolQuery.filter(QueryBuilders.termQuery("brand", params.getBrand()));}
//         星级条件if (params.getStarName() != null && !params.getStarName().equals("")){boolQuery.filter(QueryBuilders.termQuery("starName", params.getStarName()));}
//         价格if (params.getMinPrice() != null && params.getMaxPrice() != null){boolQuery.filter(QueryBuilders.rangeQuery("price").gte(params.getMinPrice()).lte(params.getMaxPrice()));}
//       准备DSLrequest.source().query(boolQuery);}

3、启动并测试

三、实现排序功能

1、修改RequestParams类

//          排序String location = params.getLocation();if (location != null && !location.equals("")){request.source().sort(SortBuilders.geoDistanceSort("location",new GeoPoint(location)).order(SortOrder.ASC).unit(DistanceUnit.KILOMETERS));}

2、在PageResult类中增加排序算法

            String location = params.getLocation();if (location != null && !location.equals("")){request.source().sort(SortBuilders.geoDistanceSort("location",new GeoPoint(location)).order(SortOrder.ASC).unit(DistanceUnit.KILOMETERS));}

3、修改HotelDoc类,增加Distance属性

   private Object distance;

4、修改解析JSON的方法

//          获取排序值Object[] sortValues = hit.getSortValues();if (sortValues.length > 0){Object sortValue = sortValues[0];object.setDistance(sortValue);}

四、实现广告置顶功能

1、修改HotelDoc类,增加isAD属性

    private Boolean isAD;

2、在service实现类中添加算分方法

//        算分控制FunctionScoreQueryBuilder functionScoreQuery = QueryBuilders.functionScoreQuery(boolQuery,new FunctionScoreQueryBuilder.FilterFunctionBuilder[]{new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.termQuery("isAD","true"),//过滤条件ScoreFunctionBuilders.weightFactorFunction(10) //分值*10)});

3、运行测试

http://www.mmbaike.com/news/60105.html

相关文章:

  • 如何制作购物网站西安网络推广公司网络推广
  • 免费做的网站怎么设置域名佛山网站建设维护
  • 申请中网可信网站seo优化几个关键词
  • 网站常用的字段合肥seo快排扣费
  • 网站策划知识seo快速上排名
  • 珠海公司做网站上海网站seoseodian
  • 余姚专业做网站公司刷排名有百度手机刷排名
  • 咋做抽奖网站舆情报告范文
  • 深圳做网站有哪些网站排行榜查询
  • 微金所网站谁做的热点新闻事件
  • 西安建站系统优化大师下载安装
  • 高埗镇做网站seo描述快速排名
  • html免费模板下载百度seo正规优化
  • 网站支付页面怎么做的网站排名优化多少钱
  • 查数据的权威网站高德北斗导航
  • 用一个域名免费做网站网络广告投放平台
  • 学网站制作浙江seo技术培训
  • 福州免费网站建站模板百度导航怎么下载
  • 黑龙江建设网证书查询三类人员快抖霸屏乐云seo
  • 苏州网站开发培训班各类资源关键词
  • 东莞外贸网站建设开发网站做优化一开始怎么做
  • 做一个网站先做前段 还是后端谷歌浏览器搜索入口
  • 旅游网网站建设目的企业培训公司有哪些
  • 招聘网站开发人员郑州seo顾问外包公司
  • 中国移动积分兑换商城官方网站客户管理软件
  • 网站建设微站网络营销大赛策划书
  • 红网常德论坛seo公司是什么意思
  • 建设银行网站怎么登陆密码忘了怎么办模板建站平台
  • 淘宝联盟网站备案行业关键词搜索排名
  • 重庆哪里可以做网站的搜盘网