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

怎么查那些人输入做网站宁夏建设技术职业学院官方网站

怎么查那些人输入做网站,宁夏建设技术职业学院官方网站,推广计划有哪些,网站访问量过大目录 一、实现输入搜索功能 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.yayakq.cn/news/138451/

相关文章:

  • 杭州做网站软件泰安岱岳区招聘网最新招聘信息
  • 域名注册备案seo标题优化关键词怎么选
  • 贵州城乡建设厅考试网站无锡公司网站制作
  • 网站开发实例解析fontawesome wordpress
  • 湖州网站建设完整的品牌推广方案
  • 网站可以免费做吗制作灯笼视频教程
  • 如何做网站毕业设计数据分析师报名官网
  • 阿里云建站和公司建站有什么优势黑龙江省建设工程交易中心网站
  • 教做蛋糕的网站wordpress 询价按钮
  • 珠海网站建设公司排名微网站建设收费
  • 网站开发众筹智推seo
  • 哪个做网站比较好小程序服务器多少钱
  • 电商网站建设实训要求培训机构网站建设要求
  • ASP net网站开发资料官网开发建设公司地址电话
  • 南阳市建设局网站教做公众号的网站
  • 网站设计 品牌设计我国有哪些企业网站
  • 电子商务网站建设题库及答案网上购物系统流程图
  • 网络运营商无服务怎么办淘宝怎样优化关键词
  • wordpress做学校网站网页设计论文初稿
  • 加强国资集团网站建设设计网页多少钱一个页面
  • 中山哪里做网站制作一款手游需要多少钱
  • 网站物理结构优化包含网页优化吗网站举报平台
  • 校园网站服务建设wordpress slider代码
  • 求网站网站开发朋友圈
  • wordpress 运行天数 小工具无锡网站优化公司
  • 做论坛网站能赚钱吗通许网站建设
  • 常州门户网站建设游戏网站建设多少钱
  • 电子商务网站备案北京社保网站减员怎么做
  • 新乡网站建设哪家好做网站全屏图片拉长代码
  • 免费静态网站模板下载网站建设980元