怎么自己制作网站平台产看网站权重

news/2025/10/4 2:32:10/文章来源:
怎么自己制作网站平台,产看网站权重,wordpress怎么发布文章带图片,行政单位门户网站建设方案1. RestClient ES官方提供了各种不同语言的客户端#xff0c;用来操作ES。这些客户端的本质就是组装DSL语句#xff0c;通过http请求发送给ES。官方文档地址#xff1a;Elasticsearch Clients | Elastic 其中的Java Rest Client又包括两种#xff1a; Java Low Level Res…1. RestClient ES官方提供了各种不同语言的客户端用来操作ES。这些客户端的本质就是组装DSL语句通过http请求发送给ES。官方文档地址Elasticsearch Clients | Elastic 其中的Java Rest Client又包括两种 Java Low Level Rest Client Java High Level Rest Client 1.1.创建一个项目 项目结构如下 1.2. mapping映射 创建索引库最关键的是mapping映射而mapping映射要考虑的信息包括 字段名 字段数据类型 是否参与搜索 是否需要分词 如果分词分词器是什么 其中 字段名、字段数据类型可以参考数据表结构的名称和类型 是否参与搜索要分析业务来判断例如图片地址就无需参与搜索 是否分词呢要看内容内容如果是一个整体就无需分词反之则要分词 分词器我们可以统一使用ik_max_word 来看下酒店数据的索引库结构: PUT /hotel {mappings: {properties: {id: {type: keyword},name:{type: text,analyzer: ik_max_word,copy_to: all},address:{type: keyword,index: false},price:{type: integer},score:{type: integer},brand:{type: keyword,copy_to: all},city:{type: keyword,copy_to: all},starName:{type: keyword},business:{type: keyword},location:{type: geo_point},pic:{type: keyword,index: false},all:{type: text,analyzer: ik_max_word}}} } 几个特殊字段说明 location地理坐标里面包含精度、纬度 all一个组合字段其目的是将多字段的值 利用copy_to合并提供给用户搜索 地理坐标说明 copy_to说明 1.3. 初始化RestClient 在elasticsearch提供的API中与elasticsearch一切交互都封装在一个名为RestHighLevelClient的类中必须先完成这个对象的初始化建立与elasticsearch的连接。 分为三步 1.3.1. 引入es的RestHighLevelClient依赖 dependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-high-level-client/artifactId /dependency 1.3.2. 因为SpringBoot默认的ES版本是7.6.2所以我们需要覆盖默认的ES版本 propertiesjava.version1.8/java.versionelasticsearch.version7.12.1/elasticsearch.version /properties 1.3.3. 初始化RestHgihLevelClient: 代码如下 public class HotelIndexTest {private RestHighLevelClient client;BeforeEachvoid setUp() {this.client new RestHighLevelClient(RestClient.builder(HttpHost.create(http://192.168.150.101:9200)));}AfterEachvoid tearDown() throws IOException {this.client.close();} } 2. RestClient操作索引 2.1. 创建索引库 创建索引库的API如下 代码分为三步 1创建Request对象。因为是创建索引库的操作因此Request是CreateIndexRequest。 2添加请求参数其实就是DSL的JSON参数部分。因为json字符串很长这里是定义了静态字符串常量MAPPING_TEMPLATE让代码看起来更加优雅。 3发送请求client.indices()方法的返回值是IndicesClient类型封装了所有与索引库操作有关的方法。 完整示例 在hotel-demo的cn.itcast.hotel.constants包下创建一个类定义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 }; } 在hotel-demo中的HotelIndexTest测试类中编写单元测试实现创建索引 Test void testCreateHotelIndex() throws IOException{//1.创建request对象CreateIndexRequest request new CreateIndexRequest(hotel);//2.准备请求的参数DSL语句request.source(MAPPING_TEMPLATE,XContentType.JSON);//3.发送请求client.indices().create(request,RequestOptions.DEFAULT); } 2.2. 删除索引库 删除索引库的DSL语句非常简单 xxxxxxxxxx DELETE /hotel 与创建索引库相比 请求方式从PUT变为DELTE 请求路径不变 无请求参数 所以代码的差异注意体现在Request对象上。依然是三步走 1创建Request对象。这次是DeleteIndexRequest对象 2准备参数。这里是无参 3发送请求。改用delete方法 在hotel-demo中的HotelIndexTest测试类中编写单元测试实现删除索引 Test void DeleteHotelIndex() throws IOException{//1.创建request对象DeleteIndexRequest request new DeleteIndexRequest(hotel);//2.发送请求client.indices().delete(request,RequestOptions.DEFAULT); } 2.3. 判断索引库是否存在 本质就是查询对应的DSL语句是 GET /hotel 因此与删除的Java代码流程是类似的。依然是三步走 1创建Request对象。这次是GetIndexRequest对象 2准备参数。这里是无参 3发送请求。改用exists方法 Test void testExistsIndex() throws IOException{//1.创建request对象GetIndexRequest request new GetIndexRequest(hotel);//2.发起请求boolean exists client.indices().exists(request,RequestOptions.DEFAULT);//3.输出System.out.println(exists ? hotel索引存在 : hotel索引不存在); } 2.4. 总结 JavaRestClient操作elasticsearch的流程基本类似。核心是client.indices()方法来获取索引库的操作对象。 索引库操作的基本步骤 初始化RestHighLevelClient 创建XxxIndexRequest。XXX是Create、Get、Delete 准备DSL Create时需要其它是无参 发送请求。调用RestHighLevelClient#indices().xxx()方法xxx是create、exists、delete 3. RestClient操作文档 3.1. 新增文档 我们要将数据库的酒店数据查询出来写入elasticsearch中。 3.1.1. 索引库实体类 数据库查询后的结果是一个Hotel类型的对象结构如下 Data TableName(tb_hotel) public class Hotel {TableId(type IdType.INPUT)private Long id;private String name;private String address;private Integer price;private Integer score;private String brand;private String city;private String starName;private String business;private String longitude;private String latitude;private String pic; } 与我们的索引库结构存在差异 longitude和latitude需要合并为location 因此我们需要定义一个新的类型与索引库结构吻合 Data NoArgsConstructor public class HotelDoc {private Long id;private String name;private String address;private Integer price;private Integer score;private String brand;private String city;private String starName;private String business;private String location;private String pic;public HotelDoc(Hotel hotel) {this.id hotel.getId();this.name hotel.getName();this.address hotel.getAddress();this.price hotel.getPrice();this.score hotel.getScore();this.brand hotel.getBrand();this.city hotel.getCity();this.starName hotel.getStarName();this.business hotel.getBusiness();this.location hotel.getLatitude() , hotel.getLongitude();this.pic hotel.getPic();} } 3.1.2. 语法说明 新增文档的DSL语句如下 POST /{索引库名}/_doc/1 {name: Jack,age: 21 } 对应的java代码如图 可以看到与创建索引库类似同样是三步走 1创建Request对象 2准备请求参数也就是DSL中的JSON文档 3发送请求 变化的地方在于这里直接使用client.xxx()的API不再需要client.indices()了。 3.1.3. 完整代码 我们导入酒店数据基本流程一致但是需要考虑几点变化 酒店数据来自于数据库我们需要先查询出来得到hotel对象 hotel对象需要转为HotelDoc对象 HotelDoc需要序列化为json格式 因此代码整体步骤如下 1根据id查询酒店数据Hotel 2将Hotel封装为HotelDoc 3将HotelDoc序列化为JSON 4创建IndexRequest指定索引库名和id 5准备请求参数也就是JSON文档 6发送请求 在hotel-demo的HotelDocumentTest测试类中编写单元测试 Test void testAddDocument() throws IOException{//1.根据id查询酒店数据Hotel hotel hotelservice.getById(61803L);//2.把Hotel类型的转成HotelDoc类型HotelDoc hoteldoc new HotelDoc(hotel);//3.将HotelDoc转为jsonString json JSON.toJSONString(hotelDoc);//1.准备request对象IndexRequest request new IndexRequest(hotel).id(hotelDoc.getId().toString());//2.准备JSON文档request.source(json,XContentType.JSON);//3.发送请求client.index(request,RequestOptions.DEFAULT); } 3.2. 查询文档 3.2.1. 语法说明 查询的DSL语句如下 GET /hotel/_doc/{id} 非常简单因此代码大概分两步 准备Request对象 发送请求 不过查询的目的是得到结果解析为HotelDoc因此难点是结果的解析。完整代码如下 可以看到结果是一个JSON其中文档放在一个_source属性中因此解析就是拿到_source反序列化为Java对象即可。 与之前类似也是三步走 1准备Request对象。这次是查询所以是GetRequest 2发送请求得到结果。因为是查询这里调用client.get()方法 3解析结果就是对JSON做反序列化 3.2.2 完整代码 在hotel-demo的HotelDocumentTest测试类中编写单元测试 Test void testGetDocument() throws IOException{//1.创建request对象GetRequest request new GetRequest(hotel,61803);//2.发送请求得到响应GetResponse response client.get(request,RequestOptions.DEFAULT);//3.解析响应结果String json response.getSourceAsString();HotelDoc hotelDoc JSON.parseObject(json,HotelDoc.class);System.out.println(hotelDoc); } 3.3. 删除文档 删除的DSL为是这样的 DELETE /hotel/_doc/{id} 与查询相比仅仅是请求方式从DELETE变成GET可以想象Java代码应该依然是三步走 1准备Request对象因为是删除这次是DeleteRequest对象。要指定索引库名和id 2准备参数无参 3发送请求。因为是删除所以是client.delete()方法 在hotel-demo的HotelDocumentTest测试类中编写单元测试 Test void testDeleteDocument() throws IOException {// 1.准备RequestDeleteRequest request new DeleteRequest(hotel, 61083);// 2.发送请求client.delete(request, RequestOptions.DEFAULT); } 3.4. 修改文档 3.4.1. 语法说明 修改文档有两种方式 1.全量修改本质是根据id删除然后进行新增 2.增量修改修改文档中指定的字段的值 在RestClient的API中全量修改与新增的API完全一致判断依据是ID 如果新增时ID已经存在则修改 如果新增时ID不存在则新增 这里不再赘述我们主要关注增量修改。 代码示例如图 与之前类似也是三步走 1准备Request对象。这次是修改所以是UpdateRequest 2准备参数。也就是JSON文档里面包含要修改的字段 3更新文档。这里调用client.update()方法 3.4.2. 完整代码 在hotel-demo的HotelDocumentTest测试类中编写单元测试 Test void testUpdateDocument() throws IOException{//1.准备requestUpdateRequest request new UpdateRequest(hotel,61083);//2.准备参数request.doc(price,699,starName, 四钻);//3.发起请求client.update(request,RequestOptions.DEFAULT); } 3.5. 批量导入文档 案例需求利用BulkRequest批量将数据库数据导入到索引库中。 步骤如下 利用mybatis-plus查询酒店数据 将查询到的酒店数据Hotel转换为文档类型数据HotelDoc 利用JavaRestClient中的BulkRequest批处理实现批量新增文档 3.5.1.语法说明 批量处理BulkRequest其本质就是将多个普通的CRUD请求组合在一起发送。 其中提供了一个add方法用来添加其他请求 可以看到能添加的请求包括 IndexRequest也就是新增 UpdateRequest也就是修改 DeleteRequest也就是删除 因此Bulk中添加了多个IndexRequest就是批量新增功能了。示例 其实还是三步走 1创建Request对象。这里是BulkRequest 2准备参数。批处理的参数就是其它Request对象这里就是多个IndexRequest 3发起请求。这里是批处理调用的方法为client.bulk()方法 我们在导入酒店数据时将上述代码改造成for循环处理即可。 3.5.2. 完整代码 在hotel-demo的HotelDocumentTest测试类中编写单元测试 Test void testBulkRequest() throws IOException{//批量查询数据ListHotel hotels hotelservice.list();//1.创建requestBulkRequest request new BulkRequest();//2.准备参数添加多个新增的requestfor(Hotel hotel : hotels){//2.1 转换为HotelDoc文档类型HotelDoc hotelDoc new HotelDoc(hotel);//2.2 创建新增文档的Request对象request.add(new IndexRequest(hotel).id(hotelDoc.getId().toString()).source(JSON.toJSONString(hotelDoc),XContentType.JSON); }//3.发起请求client.bulk(request,RequestOptions.DEFAULT); } 3.6. 小结 文档操作的基本步骤 初始化RestHighLevelClient 创建XxxRequest。XXX是Index、Get、Update、Delete、Bulk 准备参数Index、Update、Bulk时需要 发送请求。调用RestHighLevelClient#.xxx()方法xxx是index、get、update、delete、bulk 解析结果Get时需要

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从衡阳麻衣事件到AI元人文:用户端元人文实践的进化路径研究——声明ai研究

从"衡阳麻衣事件"到AI元人文:用户端元人文实践的进化路径研究 一、引言:数字时代的人文觉醒 在2025年的中国衡阳,一场看似普通的"麻衣陈情"事件引发了AI领域的深刻反思,成为推动AI元人文构想诞…

深圳网络公司网站网站服务器不稳定怎么打开网页

mac 默认安装了python2;自己后面又安装了python3;为了方便,现在想将python3换成Anaconda3。 Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 Python3安装之后,在系统中不同目…

小型手机网站建设推荐wordpress 标签输出

LTspice(14) Noise仿真 好久没有更新LTspice的教程了,大家想了没? 截止目前LTspice已经更新到24.0.9。界面发生了一些变化,但主要功能并不受影响,新的版本改了UI,找东西更加方便了,界面如下图1所示。 图1…

深圳龙岗做网站的公司网站版面设计流程包括哪些

帕金森病是一种常见的神经系统变性疾病,其患病率在不同国家和地区存在一定的差异。根据流行病学调查,帕金森病的患病率随着年龄的增长而增加,平均发病年龄为60岁左右。在中国,65岁以上人群的帕金森病患病率大约是1.7%,…

5_flutter UI框架选型

Flutter UI框架选型指南 总述 Flutter作为跨平台移动应用开发框架,提供了丰富的UI框架选择。选择合适的UI框架对于项目的开发效率、维护成本和用户体验至关重要。本文将从横向和纵向两个维度对主流Flutter UI框架进行…

网站案例模版网站开发语言有哪些

文章目录 openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表211.1 禁止操作211.2 高危操作 openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表 各项操作请严格遵守指导书操作,同时避免执行如下高危操作。 211.1 禁止操作 表1中描述在产品的操…

哪里可以免费做网站视频剪辑培训班

HPSocket 是一款跨平台的 Socket 服务器框架,支持快速开发高性能、高可靠性的网络通信应用程序。它提供了丰富的 API,可以轻松实现客户端与服务器之间的数据收发、连接管理等功能。 代码结构: 1、Program.cs:程序入口&#xff0c…

网站关键词搜索优化是怎么做的房和城乡建设部网站

唉!更正一下吧!电脑识别光驱位机械硬盘没有成功,出现了新问题,偶尔能识别出来,通常情况下不能识别出来,正在寻找解决办法中.........现在对于刚发表的这篇文章,有点惭愧!二更&#x…

网站开发语言字典58网站建设

重点讲解Tab栏切换、增、删、改 1. 面向过程与面向对象2.ES6 中的对象与类2.1 对象2.2 类2.2.1 创建类2.2.1.1 语法2.2.1.2 实例2.2.2 类创建添加属性和方法2.2.3 类的继承2.2.3.1 语法2.2.3.2 实例2.2.3.3 注意事项3. 面向对象案例3.1 面向对象版tab栏切换3.1.1 案例准备3.1.1…

4_查询flutter版本信息

Flutter 环境信息查询指南 总览:Flutter环境信息查询全貌 本文档提供全面的Flutter环境信息查询方法,采用总分总结构组织内容,帮助开发者快速掌握Flutter开发环境的配置状态。文档涵盖Windows、macOS、Linux三大主流…

c 网站开发项目三亚网站建设报价

简介: 在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)在 KEDA 上完全标准化。 联合作者 | Yan Xun,阿里云 EDAS 团队…

网站的制作流程郑州网站推广电话

题目:https://www.luogu.org/problemnew/show/P4115 论文:https://wenku.baidu.com/view/1bc2e4ea172ded630b1cb602.html 重链剖分,分别用线段树维护每条重链。线段树叶子的信息是该点轻孩子的信息;线段树区间的信息是考虑重链的一…

flask 简易网站开发长春百度网站优化

日前,海南省旅游资源规划开发质量评定委员会发布2020年第2号和2020年第3号公告,海南长影环球100奇幻乐园批准为国家4A级旅游景区,海南霸王岭国家森林公园和桂林洋国家热带农业公园批准为国家3A级旅游景区。具体公告如下:海南省旅游…

无锡网站建设 网站制作嘉兴企业做网站

Java算法(五) while 循环实现 需求: 已知一个数组,arr {11, 22, 33, 44, 55};使用程序实现把数组中的元素交换位置。 交换后的数组为 arr {55, 44, 33, 22, 11}; 并在控制台输出交换后的数组元素。 代码示例 package com.…

登录建设官方网站商机互联做网站怎么样

Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4转载于:https://www.cnblogs.com/HQFZ/p/4884243.html

php 网站开发案例教程网站建设氵金手指专业

一 操作手册 引导用户顺利开始使用Tushare Pro数据,以下步骤将带您开始Tushare数据之旅: 用户注册登录后可调用数据:https://tushare.pro/register?reg399205 二 如何获取TOKEN凭证 1、登录成功后,点击右上角->个人主页 2、…

3_flutter简单教程

Flutter 简单教程 概述 Flutter是Google开发的跨平台移动应用开发框架,使用Dart语言编写。本教程将从UI设计和代码逻辑两个方面介绍Flutter应用开发。 一、UI开发方面 1. Widget基础 Flutter应用由Widget组成,Widget…

珠海网站建设找哪家好北京网站建设 博客

近日,中国领先的汽车制造商吉利汽车携手中国领先的技术驱动的供应链解决方案及物流服务商京东物流、全球仓储机器人引领者极智嘉(Geek),在西安吉利汽车制造基地RDC仓库率先落地SkyPick上存下拣解决方案,实现了全物流链精益化、智能化、一体化…

做竞争小的网站宁波网

数据流中中位数的问题 LeetCode295,中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如:[2,3,4]的中位数是3 [2,3]的中位数是(23)/22.5 实现 MedianFinder 类: MedianFinder() 初始化 MedianFinder 对象。void addNum(…

卖域名的网站哪些好搭建钓鱼网站教程

文章目录1 数组的概念1.1 数组的大小1.2 数组的初始化2 数组的地址与数组名3 数组名不能作为左值使用4 总结1 数组的概念 数组是相同类型的变量的有序集合数组中的元素没有名字 如下图是一个数组: 1.1 数组的大小 数组的大小是数组元素个数乘以元素的数据类型数组…