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

智慧建设网站四平市建设局网站

智慧建设网站,四平市建设局网站,上海临时工400元一天,在线网页制作系统小彬文章目录 前言一、环境准备二、RsetAPI操作索引库1.创建索引库2.判断索引库是否存在3.删除索引库 二、RsetAPI操作文档1.新增文档2.单条查询3.删除文档4.增量修改5.批量导入6.自定义响应解析方法 四、常用的查询方法1.MatchAll():查询所有2.matchQuery():单字段查询3.multiMatc… 文章目录 前言一、环境准备二、RsetAPI操作索引库1.创建索引库2.判断索引库是否存在3.删除索引库 二、RsetAPI操作文档1.新增文档2.单条查询3.删除文档4.增量修改5.批量导入6.自定义响应解析方法 四、常用的查询方法1.MatchAll():查询所有2.matchQuery():单字段查询3.multiMatchQuery()多字段查询4.termQuery():词条精确值查询5.rangeQuery():范围查询6.bool复合查询7.分页查询 前言 ES官方提供了各种不同语言的客户端用来操作ES。这些客户端的本质就是组装DSL语句通过http请求发送给ES其中的Java Rest Client又包括两种 Java Low Level Rest ClientJava High Level Rest Client 本文介绍的是Java HighLevel Rest Client客户端API 一、环境准备 在elasticsearch提供的API中与elasticsearch一切交互都封装在一个名为RestHighLevelClient的类 中必须先完成这个对象的初始化建立与elasticsearch的连接。 1引入es的RestHighLevelClient依赖 dependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-high-level-client/artifactId /dependency2初始化RestHighLevelClient 这里为了单元测试方便我们创建一个测试类HotelIndexTest然后将初始化的代码编写在 BeforeEach方法中 /*** author 杨树林* version 1.0* since 12/8/2023*/SpringBootTest class HotelIndexTest{private RestHighLevelClient client;BeforeEachvoid setUp(){this.clientnew RestHighLevelClient(RestClient.builder(HttpHost.create(http://localhost:9200)));}AfterEachvoid tearDown() throws IOException {this.client.close();}}3创建HotelConstants类定义mapping映射的JSON字符串常量 public class HotelConstants {public static final String MAPPING_TEMPLATE {\n \mappings\: {\n \properties\: {\n \id\: {\n \type\: \keyword\\n },\n \name\:{\n \type\: \text\,\n \analyzer\: \ik_max_word\,\n \copy_to\: \all\\n },\n \address\:{\n \type\: \keyword\,\n \index\: false\n },\n \price\:{\n \type\: \integer\\n },\n \score\:{\n \type\: \integer\\n },\n \brand\:{\n \type\: \keyword\,\n \copy_to\: \all\\n },\n \city\:{\n \type\: \keyword\,\n \copy_to\: \all\\n },\n \starName\:{\n \type\: \keyword\\n },\n \business\:{\n \type\: \keyword\\n },\n \location\:{\n \type\: \geo_point\\n },\n \pic\:{\n \type\: \keyword\,\n \index\: false\n },\n \all\:{\n \type\: \text\,\n \analyzer\: \ik_max_word\\n }\n }\n }\n }; }二、RsetAPI操作索引库 编写单元测试实现一下功能 1.创建索引库 Testvoid creatHotelIndex() throws IOException {//1、创建Requset对象CreateIndexRequest request new CreateIndexRequest(hotels);//2、准备请求的参数DEL语句request.source(HotelConstants.MAPPING_TEMPLATE, XContentType.JSON);//3、发起请求client.indices().create(request,RequestOptions.DEFAULT);}2.判断索引库是否存在 Testvoid testExistsHotelIndex() throws IOException {//1、创建Requset对象GetIndexRequest request new GetIndexRequest(hotels);//2、发起请求boolean isExists client.indices().exists(request,RequestOptions.DEFAULT);System.err.println(isExists ? 索引库已经存在 : 索引库不存在);}3.删除索引库 Testvoid delHotelIndex() throws IOException {//1、创建Requset对象DeleteIndexRequest request new DeleteIndexRequest(hotels);//2、发起请求client.indices().delete(request,RequestOptions.DEFAULT);}二、RsetAPI操作文档 1.新增文档 AutowiredHotelServiceImpl service;Testvoid addDocument() throws IOException {// 1.根据id查询酒店数据Hotel hotel service.getById(36934);// 2.转换为文档类型HotelDoc hotelDoc new HotelDoc(hotel);// 3.将HotelDoc转jsonString json JSON.toJSONString(hotelDoc);IndexRequest request new IndexRequest(hotels).id(hotelDoc.getId().toString());request.source(json, XContentType.JSON);client.index(request, RequestOptions.DEFAULT);}2.单条查询 Testvoid getDocument() throws IOException {GetRequest request new GetRequest(hotels,36934);GetResponse response client.get(request, RequestOptions.DEFAULT);String json response.getSourceAsString();HotelDoc hotelDoc JSON.parseObject(json,HotelDoc.class);System.out.println(hotelDoc);}3.删除文档 Testvoid delDocument() throws IOException {DeleteRequest request new DeleteRequest(hotels,36934);client.delete(request,RequestOptions.DEFAULT);}4.增量修改 api中全局修改与新增一致 Testvoid UpdateDocument() throws IOException {UpdateRequest request new UpdateRequest(hotels, 36934);request.doc(name,XX酒店,city,西安,price, 200000,starName, 八星级);client.update(request, RequestOptions.DEFAULT);}5.批量导入 Testvoid addBulkRequest() throws IOException {//查询所有酒店信息ListHotel hotels service.list();//1.创建requestBulkRequest request new BulkRequest();for (Hotel hotel : hotels) {HotelDoc hotelDoc new HotelDoc(hotel);request.add(new IndexRequest(hotels).id(hotelDoc.getId().toString()).source(JSON.toJSONString(hotelDoc),XContentType.JSON));}client.bulk(request,RequestOptions.DEFAULT);}6.自定义响应解析方法 void show(SearchResponse response){//解析响应SearchHits searchHits response.getHits();//获取总条数Long total searchHits.getTotalHits().value;System.out.println(共搜到total条数据);//文档数组SearchHit[] hits searchHits.getHits();for (SearchHit hit : hits) {String json hit.getSourceAsString();System.err.println(json);HotelDoc hotelDoc JSON.parseObject(json,HotelDoc.class);System.out.println(hotelDoc);}}四、常用的查询方法 1.MatchAll():查询所有 Testvoid testMatchAll() throws IOException {//1.准备requestSearchRequest request new SearchRequest(hotels);//2、准备DEl,QueryBuilders构造查询条件request.source().query(QueryBuilders.matchAllQuery());//3.执行查询返回响应结果SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应show(response);}2.matchQuery():单字段查询 Testvoid testMatch() throws IOException {//1.准备requestSearchRequest request new SearchRequest(hotels);// 2.准备DSL 参数1字段 参数2数据request.source().query(QueryBuilders.matchQuery(all,如家));//3.执行查询返回响应结果SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应show(response);}3.multiMatchQuery()多字段查询 Testvoid testMultiMatch() throws IOException {//1.准备requestSearchRequest request new SearchRequest(hotels);// 2.准备DSLrequest.source().query(QueryBuilders.multiMatchQuery(如家,name,business));//3.执行查询返回响应结果SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应show(response);}4.termQuery():词条精确值查询 Testvoid testTermQuery() throws IOException {//1.准备requestSearchRequest request new SearchRequest(hotels);// 2.准备DSLrequest.source().query(QueryBuilders.termQuery(city,上海));//3.执行查询返回响应结果SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应show(response);}5.rangeQuery():范围查询 Testvoid testRangeQuery() throws IOException {//1.准备requestSearchRequest request new SearchRequest(hotels);// 2.准备DSLrequest.source().query(QueryBuilders.rangeQuery(pirce).gte(100).lte(200));//3.执行查询返回响应结果SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析响应show(response);}6.bool复合查询 布尔查询是一个或多个查询子句的组合,子查询的组合方式有: must:必须匹配每个子查询类似“与”; should:选择性匹配子查询类似“或”; must_not:必须不匹配不参与算分类似“非”; filter:必须匹配类似“与”不参与算分一般搜索框用must选择条件使用filter; Testvoid testBool() throws IOException {SearchRequest request new SearchRequest(hotels);//方式1 // BoolQueryBuilder boolQuery new BoolQueryBuilder(); // boolQuery.must(QueryBuilders.termQuery(city,上海)); // boolQuery.filter(QueryBuilders.rangeQuery(price).gte(100).lte(200)); // request.source().query(boolQuery);//方式2request.source().query(new BoolQueryBuilder().must(QueryBuilders.termQuery(city,上海)).filter(QueryBuilders.rangeQuery(price).gte(100).lte(200)));SearchResponse response client.search(request, RequestOptions.DEFAULT);show(response);}7.分页查询 Testvoid testPageAndSort() throws IOException {int page 1, size 5;String searchName 如家;SearchRequest request new SearchRequest(hotels);// 2.1.queryif(searchName null){request.source().query(QueryBuilders.matchAllQuery());}else{request.source().query(QueryBuilders.matchQuery(name, searchName));}// 2.2.分页 from、sizerequest.source().from((page - 1) * size).size(size);//2.3.排序request.source().sort(price, SortOrder.DESC);SearchResponse response client.search(request, RequestOptions.DEFAULT);show(response);}
http://www.w-s-a.com/news/524461/

相关文章:

  • 建站之星网站模板国内f型网页布局的网站
  • 怎么做网站关键词优化外贸网站 开源
  • 广东公司响应式网站建设设计seo系统是什么
  • 清丰网站建设费用网站建设的前途
  • 网站上那些兼职网页怎么做的北京网页
  • 桂林建站平台哪家好品牌设计公司宣传文案
  • 平面设计和建设网站的区别公司官网静态
  • h5网站建设+案例住房住房和城乡建设部网站
  • 建设股公司网站东莞建设网网上平台
  • 湖州吴兴建设局网站加强网站建设的
  • 茌平做网站公司专业商城网站建设报价
  • 网站结构图怎么画wordpress注册不发送件
  • 个人备案网站可以做论坛吗电商推广方式有哪些
  • 网站建设 自适应国内最近的新闻
  • 校园网站开发背景吴江网站建设公司
  • 网站开发工程师发展趋势山东省建设工程电子信息网站
  • 适合大学生创业的网站建设类型吉林省舒兰市建设银行网站
  • 呼和浩特网站建设哪家好培训学校加盟费用
  • 网站如何做友情链接有道云笔记WordPress
  • 贵阳企业网站建设制作赤峰浩诚网站建设公司
  • asp官方网站微信模板素材
  • wordpress 留言给站长发邮件做百度推广员赚钱吗
  • 北京建站公司做网站价格专门找人做软件的网站
  • 商务网站的特点ui软件界面设计
  • 广州个性化网站开发网站索引量是什么意思
  • 公司网站制作专业公司python做后台网站的多吗
  • 桂林建站平台哪家好给别人做网站怎么收取费用
  • python做网站显示表格用visual做的网站
  • 彩票网站建设需要什么聊城网站建设首选天成网络
  • 安徽建设工程网站wordpress标签云代码