Elasticsearch使用function_score查询酒店和排序

需求

基于用户地理位置,对酒店做简单的排序,非个性化的推荐。酒店评分包含以下:

  1. 酒店类型(依赖用户历史订单数据):希望匹配出更加符合用户使用的酒店类型
  2. 酒店评分:评分高的酒店用户体验感好
  3. geo地理位置评分:例如出差的用户,距离较近的较为便捷
  4. 价格评分(依赖用户历史订单数据):符合用户的消费习惯

实现

基于Elasticsearch 7.4,centos7环境。

索引Mapping

{"properties": {"address": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"addressEn": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"boardRoom": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"brandCode": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"businessZone": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"cityCode": {"type": "keyword"},"cityId": {"type": "long"},"cityName": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"commentFacilityPoint": {"type": "float"},"commentHygienePoint": {"type": "float"},"commentPoint": {"type": "float"},"commentPositionPoint": {"type": "float"},"commentRecommendPercent": {"type": "float"},"commentServicePoint": {"type": "float"},"diningRoom": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"email": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"factories": {"properties": {"facilityName": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"facilityType": {"type": "long"},"facilityValue": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}},"fixTime": {"type": "date","format": "yyyy-MM-dd"},"gdLocation": {"type": "geo_point"},"govStar": {"type": "long"},"govZone": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"gymnasium": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelCode": {"type": "keyword"},"hotelDesc": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelFacility": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelGroup": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelName": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelNameEn": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelService": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelShortDesc": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"hotelStatus": {"type": "long"},"hotelTips": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"location": {"type": "geo_point"},"mainPicture": {"type": "keyword"},"minPrice": {"type": "float"},"openingTime": {"type": "date","format": "yyyy-MM-dd"},"parking": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"phoneNum": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"pickUpService": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"pictures": {"properties": {"pictureType": {"type": "long"},"pictureUrl": {"type": "keyword"}}},"postNumber": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomCount": {"type": "long"},"rooms": {"properties": {"bedNumber": {"type": "long"},"bedWidth": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"checkNumber": {"type": "long"},"facilities": {"properties": {"facilityValue": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomCode": {"type": "keyword"}}},"pictures": {"properties": {"pictureUrl": {"type": "keyword"},"roomCode": {"type": "keyword"}}},"roomArea": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomBedType": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomCigaretteInfo": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomCode": {"type": "keyword"},"roomCount": {"type": "long"},"roomFloor": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomMainPicture": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"roomName": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"windowType": {"type": "long"},"wrapRoomName": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}},"starCode": {"type": "long"},"starName": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"swimmingPool": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"trafficInfo": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"type": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"wifi": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}
}

字段的描述:

{"hotelCode": "酒店编号","hotelName": "酒店中文名","hotelNameEn": "酒店英文名","hotelStatus": "酒店状态:1启用,2挂起","cityId": "系统城市ID","cityCode": "城市编号","cityName": "城市名称","openingTime": "开业时间","fixTime": "装修时间","starCode": "星级编号(1,2,3,4,5)","starName": "星级描述","govStar": "是否挂牌星级:1:是;0:否","phoneNum": "电话","email": "邮件","postNumber": "邮编","location": "百度坐标","gdLocation": "高德坐标","address": "地址","addressEn": "地址","brandCode": "酒店品牌,例如“麗枫”。","hotelGroup": "酒店所属集团名称。例如“7天(铂涛)”。","roomCount": "房间数量","mainPicture": "图片地址","hotelTips": "酒店温馨提示信息","hotelFacility": "酒店设施","hotelService": "酒店服务","hotelShortDesc": "酒店简介","hotelDesc": "酒店详细介绍","trafficInfo": "交通信息","wifi": "是否有免费WIFI,字段不为空表示有该项服务","boardRoom": "是否有会议室,字段不为空表示有该项服务","diningRoom": "是否有餐厅,字段不为空表示有该项服务","parking": "是否有停车场,字段不为空表示有该项服务","pickUpService": "是否有接机服务,字段不为空表示有该项服务","swimmingPool": "是否有游泳池,字段不为空表示有该项服务","gymnasium": "是否有健身房,字段不为空表示有该项服务","govZone": "行政区域信息,信息来自于“按城市查询县级行政区域”接口","businessZone": "商圈信息","minPrice": "最低价","commentPoint": "酒店点评分数(满分5分)","commentRecommendPercent": "酒店有百分之多少用户推荐,例如90%时数据是90.0","commentPositionPoint": "对于酒店位置的单项点评分数(满分5分)","commentFacilityPoint": "对于酒店设施的单项点评分数(满分5分)","commentServicePoint": "对于酒店服务的单项点评分数(满分5分)","commentHygienePoint": "对于酒店卫生的单项点评分数(满分5分)"
}

查询酒店和排序

数据量较大,上传不了,有需要可私信获取demo酒店数据。

排序方式有推荐、距离、好评、低价、高价,这里我们实现推荐排序。

筛选条件也是多样的,如下所示,这里我们使用距离筛选:

  1. 评分:4.8以上、4.5以上、4.0以上、3.5以上
  2. 酒店类型:民宿、 酒店公寓、青年公寓、特色住宿、别墅、客栈、农家院、电竞酒店、情侣酒店
  3. 宾客类型:外宾适用、港澳台宾客适用
  4. 特色主题“地铁附近、亲子精选、商务出行、度假休闲、湖畔美居、动人夜景、依山傍水、地标景、四合院
  5. 酒店设施:免费停车、洗衣服、24小时热水、空调、停车场、棋牌室、健身房、接送机服务、洗衣服服务
  6. 房型:大床房、双床房、床位房、单人床房、电竞房、情侣房、影音房、私汤房、亲子房
  7. 餐食:含早
  8. 距离:1km以内、1-3km、3-5km、5-10km

基于地理位置(也可以增加其他条件)5km范围内的酒店数据使用function_scope排序。

在价格和位置上,我们期望和origin数据接近的酒店数据,使用了衰减函数进行评分,衰减函数详细说明在后面进行说明。

在酒店名称上,我们期待根据用户历史订单时间,赋予不同的权重,使用query_string查询。

注意的是boost_mode使用了replace使用function_score计算的分数,避免elasticsearch的文档评分干扰。

{"query": {"function_score": {"query": {"bool": {"must": {"match_all": {}},// 根据距离筛选数据"filter": {"geo_distance": {"distance": "5km","gdLocation": {"lat": "23.150261","lon": "113.324994"}}}}},"boost": 5,// max_boost 参数来限制新分数不超过一定的限制。 "max_boost": 100,"functions": [// 酒店类型(依赖用户历史数据){"filter": {// 根据历史数据,不同关键词设置权重“青年旅舍”权重1,“青年公寓”权重2,“酒店公寓”权重3"query_string": {"query": "hotelName:(\"青年旅舍\"^1 or \"青年公寓\"^2 or \"酒店公寓\"^3)"}},// 生成从 0 到但不包括 1 均匀分布的分数(非必填),默认情况下,它使用内部 Lucene 文档 ID 作为随机源"random_score": {// 使用_seq_no字段作为随机源,唯一的缺点是如果文档已更新,则分数将会更改"field": "_seq_no","seed": 10},"weight": 5},// 酒店评价{"filter": {"range": {// 酒店服务的单项点评分数"commentPoint": {"gte": 3.5,"lte": 5}}},"weight": 10},// 衰减函数(DECAY_FUNCTION )-geo 地理位置评分{// gauss 正常衰减"gauss": {// 在origin上偏移offset后随着scale进行衰减"gdLocation": {// 用于计算距离的原点 lon,lat(经纬度)"origin": "113.324994,23.150261",// 定义计算得分等于衰减参数时距原点 + 偏移量的距离"scale": "5km",// 如果定义了offset,则衰减函数将仅计算距离大于offset的文档的衰减函数。默认值为 0。"offset": "1km",//衰减参数定义如何在给定scale的距离上对文档进行评分。如果未定义衰减,则距离scale上的文档将评分为 0.5。"decay": "0.33"}},"weight": 15},//价格排序(依赖历史数据,缺省 150){"gauss": {// 在150元基础上偏移30元在100元范围内衰减"minPrice": {"origin": 150,"offset": 30,"scale": 100}},"weight": 10}],// functions函数的分数与查询的分数相结合// multiply:查询得分与functions得分相乘(默认)、replace:仅使用functions得分,忽略查询得分、sum:查询得分与functions得分相加、avg:平均、max:查询得分和functions得分的最大值、min:查询得分和functions得分的最小值"boost_mode": "replace",// Score_mode 指定如何组合计算functions函数的分数// multiply(默认)分数相乘、sum分数相加、avg:分数被平均、max:使用最高分数、min:使用最低分数"score_mode": "sum",// 默认情况下,修改分数不会更改匹配的文档。要排除不满足特定分数阈值的文档,可以将 min_score 参数设置为所需的分数阈值。"min_score": 0}},// 返回距离"script_fields": {"distance_in_m": {"script": "doc['gdLocation'].arcDistance(23.150261,113.324994)"}}
}

查询结果:

{"took": 10,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 3244,"relation": "eq"},"max_score": 24.119629,"hits": [{"_index": "hotel_test","_type": "_doc","_id": "jiMk1I0BqMZKQzdg8UCl","_score": 24.119629,"_source": {"gdLocation": {"lon": "113.288340","lat": "23.132313"},"address": "青龙坊2号","cityName": "广州市","commentPoint": 4.5,"minPrice": 158.0,"hotelName": "亨富涞酒店(广州青龙坊店)"},"fields": {"distance_in_m": [4246.059620137545]}},{"_index": "hotel_test","_type": "_doc","_id": "YSIa1I0BqMZKQzdgDqVC","_score": 23.682613,"_source": {"gdLocation": {"lon": "113.357566","lat": "23.134140"},"address": "中山大道西138号广运楼3层","cityName": "广州市","commentPoint": 4.1,"minPrice": 193.0,"hotelName": "棠舍公寓(广州天河公园华景新城店)"},"fields": {"distance_in_m": [3782.1797227009683]}},{"_index": "hotel_test","_type": "_doc","_id": "JyIY1I0BqMZKQzdgnpWo","_score": 23.155634,"_source": {"gdLocation": {"lon": "113.346694","lat": "23.173795"},"address": "天源路134-140号201铺","cityName": "广州市","commentPoint": 4.2,"minPrice": 150.0,"hotelName": "广州友逸·青舍酒店(天河客运站地铁站店)"},"fields": {"distance_in_m": [3430.6572488915003]}},{"_index": "hotel_test","_type": "_doc","_id": "cCIY1I0BqMZKQzdg3pj1","_score": 22.291739,"_source": {"gdLocation": {"lon": "113.342061","lat": "23.172472"},"address": "元岗街元岗南路13-15号之6","cityName": "广州市","commentPoint": 3.8,"minPrice": 128.0,"hotelName": "华舍连锁酒店(广州天河客运站店)"},"fields": {"distance_in_m": [3023.907431757608]}},{"_index": "hotel_test","_type": "_doc","_id": "xCIc1I0BqMZKQzdgr8yX","_score": 22.093195,"_source": {"gdLocation": {"lon": "113.347124","lat": "23.143523"},"address": "天河北路719-721号东方之珠花园","cityName": "广州市","commentPoint": 4.9,"minPrice": 76.0,"hotelName": "小李家青旅(广州华师店)"},"fields": {"distance_in_m": [2383.4711465212176]}},{"_index": "hotel_test","_type": "_doc","_id": "pyMi1I0BqMZKQzdgMxy2","_score": 22.071991,"_source": {"gdLocation": {"lon": "113.329772","lat": "23.134002"},"address": "天河路365号天俊阁1802","cityName": "广州市","commentPoint": 4.1,"minPrice": 70.0,"hotelName": "迎寓制式青旅(石牌桥地铁站店)"},"fields": {"distance_in_m": [1872.7678276747463]}},{"_index": "hotel_test","_type": "_doc","_id": "1SIY1I0BqMZKQzdgu5b6","_score": 21.591082,"_source": {"gdLocation": {"lon": "113.313978","lat": "23.120444"},"address": "寺右新马路131号","cityName": "广州市","commentPoint": 4.1,"minPrice": 190.0,"hotelName": "智营·星旅精选酒店(广州五羊邨地铁站店)"},"fields": {"distance_in_m": [3501.629279766179]}},{"_index": "hotel_test","_type": "_doc","_id": "HiMj1I0BqMZKQzdguS-z","_score": 21.376797,"_source": {"gdLocation": {"lon": "113.310007","lat": "23.153069"},"address": "先烈东路159号四航局大院4栋601房","cityName": "广州市","commentPoint": 4.2,"minPrice": 76.0,"hotelName": "广州兰姐青年公寓"},"fields": {"distance_in_m": [1563.7710672937392]}},{"_index": "hotel_test","_type": "_doc","_id": "QSIb1I0BqMZKQzdg6cMJ","_score": 21.36859,"_source": {"gdLocation": {"lon": "113.340093","lat": "23.173880"},"address": "元岗路600号自编2号(智汇park对面)","cityName": "广州市","commentPoint": 4.7,"minPrice": 152.0,"hotelName": "素舍2.0酒店(广州天河客运站天羽店)"},"fields": {"distance_in_m": [3046.3470547262573]}},{"_index": "hotel_test","_type": "_doc","_id": "ByIe1I0BqMZKQzdgYeOU","_score": 21.1093,"_source": {"gdLocation": {"lon": "113.341442","lat": "23.172095"},"address": "慧通产业园101栋A区","cityName": "广州市","commentPoint": 4.6,"minPrice": 176.0,"hotelName": "素舍酒店(广州天河客运站地铁站店)"},"fields": {"distance_in_m": [2953.2864749434843]}}]}
}

DECAY_FUNCTION-衰减函数

衰减函数(Decay Function)是一个数学函数,它用于描述一个数量随着时间、距离或其他因素递减的过程。衰减函数通常是指数函数或者多项式函数的形式,用以模拟现象如电磁波的衰减、放射性物质的衰变、药物在体内的代谢等。

在地理信息系统(Geographic Information Systems, GIS)或地理学领域中,衰减函数可以用来衡量地理位置之间的相互作用或影响随距离的递减。例如,一个城市的经济影响力对附近的城镇可能很大,但对更远的城镇影响则小得多,衰减函数可以用来量化这种影响力的减弱程度。

以下是一些衰减函数在地理领域的应用示例:

  1. 空间相互作用模型:在模拟城市之间的人口迁移、商业交往或通勤模式时,衰减函数可以用来表示随着距离增加,这些互动的可能性怎样降低。

  2. 热点分析:在热点分析中,可以用衰减函数来确定某一事件(如犯罪、病例报告等)对周围区域的影响,随距离递减。

  3. 可达性评估:在评估某个地点对于居民的可达性时,可以使用衰减函数来模拟不同交通模式(步行、开车等)的时间或距离衰减。

  4. 地理加权回归(Geographically Weighted Regression, GWR):在地理加权回归分析中,衰减函数用于赋予数据点一个权重,这个权重基于数据点之间的空间距离,更近的点有更大的影响力。

在具体应用中,选择合适的衰减函数类型和参数对模型结果的精确性有很大影响。常见的衰减函数形式包括:

  • 指数衰减函数:f(d) = e^(-λd),其中d是距离,λ是衰减系数。
  • 幂律衰减函数:f(d) = d^(-β),其中d是距离,β是衰减系数。

这些函数的参数通常需要根据实际数据进行拟合和调整,以最好地反映现实世界中的衰减现象。

elasticsearch 提供gauss、lin、exp 衰减函数,对比如下:

在这里插入图片描述

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

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

相关文章

在Ubuntu22.04 LTS上搭建Kubernetes集群

文章目录 准备工作系统准备软件包准备主机和IP地址准备 安装步骤安装前准备关闭防火墙设置服务器时区关闭 swap 分区关闭SELinux配置hosts配置文件转发 IPv4 并让 iptables 看到桥接流量 安装容器运行时安装Kubernetes配置并安装apt包初始化集群 安装calico网络插件部署应用 本…

nvm下载node指定版本后npm不存在

一,项目背景 接手一个老的项目,需要使用旧的node版本,使用nvm下载12.11.0版本后发现npm命令不存在。 二,原因 查找资料发现是8.11以上版本的node版本对应的npm都没法自动安装,需要自己到npm官网( https://registry.…

详解Kotlin中run、with、let、also与apply的使用和区别

Kotlin作为一种现代、静态类型的编程语言,不仅提供了丰富的特性,还提供了极具表现力的函数:run, with, let, also, 和 apply。理解这些函数的不同之处对于编写高效、易于维护的代码至关重要。 函数对比表 函数对象引用返回值使用场景runthi…

DB-GPT:大模型 + 数据库,全流程自动化

DB-GPT:大模型 数据库,全流程自动化 提出背景DB-GPT 结构具体问题与解法背景分析对比其他工具DB-GPT系统设计 提出背景 论文:https://arxiv.org/pdf/2312.17449.pdf 代码:https://github.com/eosphoros-ai/DB-GPT 本文介绍了D…

二次供水物联网:HiWoo Cloud助力城市水务管理升级

随着城市化的快速推进,二次供水系统作为城市基础设施的重要组成部分,其稳定运行和高效管理显得至关重要。然而,传统的二次供水管理方式在应对复杂多变的城市供水需求时,显得力不从心。为了破解这一难题,HiWoo Cloud平台…

应用回归分析:弹性网络回归

弹性网络回归:原理、优势与应用 弹性网络回归(Elastic Net Regression)是一种广泛使用的线性回归方法,它结合了岭回归(Ridge Regression)和套索回归(Lasso Regression)的特点。通过…

等保2.0高风险项全解析:判定标准与应对方法

引言 所谓高风险项,就是等保测评时可以一票否决的整改项,如果不改,无论你多少分都会被定为不合格。全文共58页,写得比较细了,但是想到大家基本不会有耐心去仔细看的(凭直觉)。这几天挑里边相对…

Java学习--学生管理系统(残破版)

代码 Main.java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<Student> list new ArrayList<>();loop:while (true) {System.out.println("-----欢迎来到阿宝院校学生管理系…

可视化图文报表

Apache Echarts介绍 Apache Echarts是一款基于Javascript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网&#xff1a;Apache ECharts 入门案例&#xff1a; <!DOCTYPE html> <html>…

C#,弗洛伊德-瑞文斯特(Floyd-Rivest)算法与源代码

Robert W. Floyd 1 Floyd-Rivest 算法 Floyd-Rivest 算法是一种选择算法&#xff0c;用于在不同元素的数组中找到第k个最小元素。它类似于快速选择算法&#xff0c;但在实际运行中有更好的运行时间。 和 QuickSelect 一样&#xff0c;该算法基于分区的思想工作。对数组进行分…

济南适宜地提取

题目: 网上下载中国的DEM、土地利用地图(1980、2000、2015年的)和一张最新济南市行政区划 图(要求:莱芜市并入济南后的区划图); 2.网上下载中国2015年年平均降水空间插值数据;3..网上下载中国2015年年平均气温空间插值数据; (注:以上数据可到资源环境科学与数据中心下载http…

【Docker】安装及相关的命令

目录 一 Docker简介 1.1 是什么 1.2 优缺点 1.3 应用场景 1.4 安装 二 命令 2.1 Docker基本命令 2.2 Docker镜像命令 2.3 Docker容器命令 一 Docker简介 1.1 是什么 Docker是一个开源的应用容器引擎&#xff0c;它基于Go语言实现&#xff0c;并利用操作系统本身已有的…

【QT+QGIS跨平台编译】之五十四:【QGIS_CORE跨平台编译】—【qgssqlstatementlexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

状态机2——————

1.原理 2.代码 2.1 complex_fsm.v module complex_fsm(input wire sys_clk ,input wire sys_rst_n ,input wire pi_money_half ,input wire pi_money_one ,output reg po_cola ,output reg po_money );parameter IDLE 5b00001,HALF 5b00010,ONE 5b00100…

SQL注入漏洞解析-less-8(布尔盲注)

我们来看一下第八关 当我们进行尝试时&#xff0c;他只有You are in...........或者没有显示。 他只有对和错显示&#xff0c;那我们只能用对或者错误来猜他这个数据库 ?id1%27%20and%20ascii(substr(database(),1,1))>114-- ?id1%27%20and%20ascii(substr(database(),1,…

[WebUI Forge]ForgeUI的安装与使用 | 相比较于Auto1111 webui 6G显存速度提升60-75%

ForgeUI的github主页地址:https://github.com/lllyasviel/stable-diffusion-webui-forge Stable Diffusion WebUI Forge 是一个基于Stable Diffusion WebUI(基于Gradio)的平台,可简化开发、优化资源管理并加快推理速度。 “Forge”这个名字的灵感来自于“Minecraft Forge”…

【MySQL】MySQL复合查询--多表查询自连接子查询 - 副本 (2)

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下&#xff1a; mysql> select * from emp; ----------------------------…

vue项目导出excel ,文件过大导致请求超时的处理方法

一、因为文件过大&#xff0c;请求时间较长&#xff0c;就会产生请求超时的情况&#xff0c;处理方式是可以分为三个接口&#xff0c;接口1用来获取id值&#xff0c;接口2利用id值发起请求&#xff0c;询问是否准备好下载&#xff0c;如果没准备好&#xff0c;则没隔一秒再次发…

便携式森林消防灭火泵:森林安全的守护者

在自然环境中&#xff0c;森林是地球生态系统的重要组成部分&#xff0c;它们为我们提供氧气、净化空气、防止土壤侵蚀等重要功能。然而&#xff0c;当森林发生火灾时&#xff0c;它们也会成为我们的噩梦。火势蔓延迅速&#xff0c;难以控制&#xff0c;对森林和生态环境造成严…

HTML5 CSS3 提高

一&#xff0c;HTML5的新特性 这些新特性都有兼容性问题&#xff0c;基本是IE9以上版本的浏览器才支持&#xff0c;如果不考虑兼容性问题&#xff0c;可以大量使用这些新特性。 1.1新增语义化标签 注意&#xff1a; 1这种语义化标签主要是针对搜索引擎的 2这些新标签在页面…