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

Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索

作者:来自 Elastic Jeff Vestal

了解如何使用开放爬虫与 semantic text 字段结合来轻松抓取网站并使其可进行语义搜索。

Elastic Open Crawler 演练

我们在这里要做什么?

Elastic Open Crawler 是 Elastic 托管爬虫的后继者。

Semantic text 是 Elastic 的简单入门数据类型,用于启动和运行语义搜索。

两者结合,就像是搜索领域的 “新锐组合”。

接下来,我们将学习如何轻松配置并运行 Open Crawler 来爬取一个网站(以 Search Labs 的博客为例),自动分块并使用 ELSER 为这些网页内容(博客文本)生成稀疏向量嵌入,并运行一些示例搜索,确保一切正常运行。

选择你自己的冒险

  • 如果你想在免费的、按需的研讨会环境中完成这个 —— 请点击此处。
  • 如果你更愿意观看此演练的视频 ——请点击此链接。
  • 如果你不熟悉 Open Crawler,请在测试版公告博客中阅读。
    • 或者在我们的讨论论坛上阅读一篇很棒的文章 —— 2024 年 12 月 12 日:[EN] 像超级英雄一样浏览网页内容
  • 如果你喜欢阅读博客,请继续阅读!

Elasticsearch

项目或集群

你首先需要的是 Elasticsearch 集群或无服务器项目。如果你没有,没关系;你可以在 cloud.elastic.co 注册免费试用

创建映射模板。

如果你不想自定义任何映射,Open Crawler 将使用合理的默认值将其在网络上抓取的所有数据索引到 Elasticsearch 中。但是,在我们的例子中,我们希望增强默认映射,以便我们的一些文本可以为其生成稀疏向量。

我们将为索引中的两个关键字段创建一个新的索引模板。其余字段默认设置。

  • 创建一个名为 `body_semantic` 的 `semantic_text` 字段
    • 这将:
      • 从博客正文生成块
      • 使用 ELSER 从块生成稀疏向量
    • 注意:语义文本字段需要 inference API,它告诉 Elasticsearch 如何在提取和搜索时生成嵌入。由于我们在此示例中使用无服务器,因此我们将在 Elasticsearch 中使用默认的 ELSER 推理端点。
      • 如果你不使用 serverless 或想要设置自己的推理端点,ELSER 的文档页面有一个创建新推理端点的示例。
  • 为 “body” 字段添加映射,以包含 “copy_to” 参数,从而将正文复制到我们的语义文本字段。
    • body 字段通常会自动映射到文本。

PUT 索引模板

PUT _index_template/search-labs-template
{"index_patterns": ["search-labs-blogs","search-labs-blogs*"],"template": {"settings": {"index": {"default_pipeline": "parse_author_and_publish_date"}},"mappings": {"properties": {"first_author": {"type": "keyword"},"publish_date": {"type": "date"},"body": {"type": "text","copy_to": "body_semantic"},"body_semantic": {"type": "semantic_text","inference_id": "elser-endpoint"},"last_crawled_at": {"type": "date"}}}}
}

创建空索引

PUT search-labs-blogs

创建摄取管道

爬虫程序在抓取网页时可以提取一些信息。但是,当你需要额外的解析时,你可以配置摄取管道。

我们将配置一个管道来提取以下信息:

  • 从 author 字段中提取发布日期并将其存储在新的 posted_date 字段中
  • 从 list_of_authors 中提取第一作者并将其存储在新的 first_author 字段中
  • 删除 raw_author 和 raw_publish_date

PUT 摄取管道

PUT _ingest/pipeline/parse_author_and_publish_date
{"processors": [{"script": {"source": """// If raw_author is null or empty array, set default unknownif (ctx.raw_author == null || ctx.raw_author.size() == 0) {ctx.list_of_authors = [];ctx.first_author = "Unknown";} else {// raw_author is already an array from crawlerctx.list_of_authors = ctx.raw_author;ctx.first_author = ctx.raw_author[0];  // The first element}"""}},{"script": {"source": """// If raw_publish_date is null or empty array, set default to January 1, 1970if (ctx.raw_publish_date == null || ctx.raw_publish_date.trim().length() == 0) {ctx.raw_publish_date = "January 1, 1970";} else {ctx.raw_publish_date = ctx.raw_publish_date.trim();}"""}},{"date": {"field": "raw_publish_date","target_field": "publish_date","formats": ["MMMM d, yyyy"],"timezone": "UTC"}},{"remove": {"field": "raw_publish_date","ignore_missing": true}},{"remove": {"field": "raw_author","ignore_missing": true}}]
}

部署 ELSER

如果你使用的是 Elastic 的 serverless 项目,则可以使用默认的 ELSER 推理端点 (_inference/.elser-2-elasticsearch)。如果这样做,你需要更新索引模板中 body_semantic 的映射。

我们将创建一个新的推理端点,为其提供更多资源,这样非 serverless 的读者也可以享受乐趣!

PUT 新的推理端点

PUT _inference/sparse_embedding/elser-endpoint
{"service": "elser","service_settings": {"num_allocations": 32,"num_threads": 1}
}

Docker

这里只是简单说明一下。你必须在要运行爬虫的计算机或服务器上安装并运行 Docker。

查看 Docker 的入门指南以获取有关启动和运行的帮助。

Open Crawler

下载 Docker 镜像

你可以使用 Elastic 的官方镜像下载并启动 Open Crawler Docker 镜像。

docker run -i -d \
--name crawler \
docker.elastic.co/integrations/crawler:0.2.0

配置爬虫

我们将爬取 Elastic Search Labs 博客。Search Labs 有很多出色的搜索、ML 和 GenAI 内容。但它也链接到 elastic.co 的其他部分。我们将配置爬虫以限制我们的爬取,确保仅索引博客。

Crawler.yaml

  1. 创建一个新的 crawler.yaml 文件并粘贴以下代码
  2. allow 规则,用于 /search-labs/blog URL 模式下的所有内容(包括)
  3. 一个 “拒绝所有” 的规则,用于拦截所有其他 URL。
  4. 使用提取规则提取作者的姓名并将其分配给字段 “authors”。
    1. 有关提取规则示例的更多详细信息,请查看有关测试版的博客。
  5. 在此示例中,我们使用正则表达式模式作为拒绝规则。

将以下代码粘贴到 crawler.yml 中:

crawler.yml

domains:- url: https://www.elastic.coseed_urls:- https://www.elastic.co/search-labs/blog/crawl_rules:- policy: allowtype: beginspattern: "/search-labs/blog"- policy: denytype: regexpattern: ".*"extraction_rulesets:- url_filters:- type: beginspattern: /search-labs/blog/rules:- action: extractfield_name: raw_authorselector: ".Byline_authorNames__bCmvc a[href*='/search-labs/author/']"join_as: arraysource: html- action: extractfield_name: raw_publish_dateselector: "time.article-published-date"attribute: "datetime"join_as: stringsource: htmloutput_sink: elasticsearch
output_index: search-labs-blogssitemap_discovery_disabled: true
binary_content_extraction_enabled: falseelasticsearch:host: http://kubernetes-vmusername: elasticpassword: changemepipeline: parse_author_and_publish_datepipeline_enabled: truelog_level: debug

注:如果我们想使用自签名的 Elasticsearch 集群来演示,那么我们需要添加 fingerprint。你可以使用如下的命令来获得 fingerprint:

openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt
##  The SHA256 CA cert fingerprint used to verify SSL connection to Elasticsearch.
##    SSL usage is configured by the presence of `https` in `elasticsearch.host`
#elasticsearch.ca_fingerprint: null

将配置文件复制到正在运行的 docker 容器

运行下面的复制命令:

docker cp crawler.yml crawler:app/config/crawler.yml

启动抓取作业

我们现在可以抓取一些网页了!运行以下命令即可启动它。

docker exec -it crawler bin/crawler crawl config/crawler.yml

注意:你最初可能会在爬虫日志中看到超时。默认情况下,ELSER 部署会缩减为 0 个分配,以减少空闲时的成本。部署需要一分钟才能扩展。

转到文档!

返回 Kibana 中的控制台并输入以下搜索:

GET search-labs-blogs/_search
{"retriever": {"standard": {"query": {"semantic": {"field": "body_semantic","query": "How do I quantize vectors?"}}}},"_source": false,"fields": ["title","body"]
}

我收到的前五个标题是:

  1. Better Binary Quantization vs. Product Quantization - Search Labs
  2. Scalar quantization 101 - Search Labs
  3. RaBitQ binary quantization 101 - Search Labs
  4. Better Binary Quantization (BBQ) in Lucene and Elasticsearch - Search Labs
  5. Understanding Int4 scalar quantization in Lucene - Search Labs

所有查找可以帮助回答我的问题的博客。

Discover

你还可以跳转到 “Discover” 以查看文档表。

设置方法:

  • 单击 “ Data View” 选择器
  • 单击 “Create a data view”
  • 在索引模式框中,输入“search-labs-blogs”
  • 在 “Timestamp” 字段中,选择 “publish_date”
  • 单击 “Save data view to Kibana”

你可能需要更改时间选择器以设置更宽的范围。

  • 单击时间选择器(通常默认为“Last 15 minutes”)
  • 选择 “Last 1 year”

你可以单击左列字段名称旁边的 +,制作一个格式良好的表格,如下所示。

Discover 视图显示了从 Open Crawler 索引的 search labs 博客

按需工作坊

你已经坚持到最后了!为什么不在一个真实的按需工作坊环境中亲自动手实践以上内容呢?
点击此处立即参与。

想要获得 Elastic 认证?了解下一期 Elasticsearch 工程师培训何时举行!

Elasticsearch 包含许多新功能,可帮助您针对自己的用例构建最佳搜索解决方案。深入了解我们的示例笔记本以了解更多信息,开始免费云试用,或立即在本地机器上试用 Elastic。

原文:Semantic search using the Open Crawler and Semantic Text - Elasticsearch Labs

相关文章:

Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索

作者:来自 Elastic Jeff Vestal 了解如何使用开放爬虫与 semantic text 字段结合来轻松抓取网站并使其可进行语义搜索。 Elastic Open Crawler 演练 我们在这里要做什么? Elastic Open Crawler 是 Elastic 托管爬虫的后继者。 Semantic text 是 Elasti…...

【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题

目录 为什么要结合项目与算法? 1. 蓝桥杯与《苍穹外卖》项目的结合 实例:基于蓝桥杯算法思想的订单配送路径规划 问题描述: 代码实现:使用动态规划解决旅行商问题 代码解析: 为什么这个题目与蓝桥杯相关&#x…...

powershell基础(1)

powershell基础(1) 1. 安装PowerShell 首先,确保你的计算机上已经安装了PowerShell。对于Windows 10及更高版本,PowerShell通常是默认安装的。你也可以从微软官网下载并安装最新版本的PowerShell Core。 2. 打开PowerShell 在Windows搜索栏中输入“P…...

国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案

随着科技高速发展,视频信号经过数字压缩,通过互联网宽带或者移动4G网络传递,可实现远程视频监控功能。将这一功能运用于施工现场安全管理,势必会大大提高管理效率,提升监管层次。而这些,通过Liveweb监控系统…...

踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发

日前,RoboSense速腾聚创交出了一份亮眼的Q3财报。受到多重利好消息影响,其股价也应势连续大涨。截止12月9日发稿前,速腾聚创股价近一个月内累计涨幅已超88%。 财务数据方面,速腾聚创在今年前三季度实现总收入约11.3亿元&#xff0…...

本地maven项目打包部署到maven远程私库

目的:在自己的maven项目中,要把当前maven项目部署到maven私库,供其他人引入依赖使用。 首先要确保你当前能访问到你的私库,能拉私库的maven依赖即可。 maven部署命令: mvn deploy:deploy-file -Dmaven.test.skiptrue -…...

青少年编程与数学 02-004 Go语言Web编程 14课题、数据操作

青少年编程与数学 02-004 Go语言Web编程 14课题、数据操作 一、数据操作二、CRUD说明: 三、数据验证为什么需要数据验证?Go Web应用中的数据验证示例步骤 1: 定义订单结构体步骤 2: 实现验证逻辑步骤 3: 在HTTP处理函数中使用验证 四、数据格式化什么是数…...

Java 中 ConcurrentHashMap 和 HashMap 能存 null 吗?深挖原理和使用场景

前言 当你使用 HashMap 或 ConcurrentHashMap 时,可能会冒出一个经典问题:它们能存储 null 键或 null 值吗? 初学者可能觉得无所谓,试一下不就知道了,但在真实项目中,这个问题可能导致严重的 bug。今天我们…...

【JavaWeb后端学习笔记】Spring Task实现定时任务处理

Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 主要的应用场景有:纪念日提醒,处理订单未支付,还款提醒等。 1、corn表达式 使用Spring Task首先需要了解corn表达式,通过cor…...

【CSS in Depth 2 精译_087】14.4:CSS 中的浮动特效以及在文字环绕中的应用 + 14.5:本章小结

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 14.1.1 滤镜的类型14.1.2 背景滤镜 14.2 蒙版 14.2.1 带渐变效果的蒙版特效14.2.2 基于亮度来定义蒙版14.2.3 其他蒙版属…...

探索 Python编程 调试案例:计算小程序中修复偶数的bug

在 学习Python 编程的过程里,会遇到各种各样的bug。而修复bug调试代码就像是一场充满挑战的侦探游戏。每一个隐藏的 bug 都是谜题,等待开发者去揭开真相,让程序可以顺利运行。今天,让我们通过一个实际案例,深入探索 Py…...

探索 CI/CD 工具的力量

CI/CD 工具是什么? CI/CD 工具是开发者的“生产力加速器”。它通过自动化代码构建、测试、部署等流程,消除了繁琐的手动操作,确保开发和运维的无缝衔接。借助这些工具,开发者不仅能够更快地发布产品,还能更早发现问题…...

MySQL和Oracle的区别

MySQL和Oracle的区别 MySQL是轻量型数据库,并且免费,没有服务恢复数据。 Oracle是重量型数据库,收费,Oracle公司对Oracle数据库有任何服务。 1.对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交&#xff0…...

亚马逊云科技 re:Invent 2024重磅发布!Amazon Bedrock Data Automation 预览版震撼登场

AWS re:Invent 2024 已圆满落幕! 在本次大会中,隆重推出了一项全新功能: Amazon Bedrock Data Automation(预览版)震撼登场! New Amazon Bedrock capabilities enhance data processing and retrieval | …...

SQL语句练习

阅读《SQL必知必会》(第五版)然后结合往常表做的练习记录 这里使用的数据库时sqlite3,使用的工具时navicat 表资源链接https://wenku.baidu.com/view/349fb3639b6648d7c1c74652.html 表录入后如上图所示。后面如果有多张表之间的操作,在引入…...

保姆级教程Docker部署RabbitMQ镜像

目录 1、创建挂载目录 2、运行RabbitMQ容器 3、Compose运行RabbitMQ容器 4、开启界面插件 5、查看RabbitMQ运行状态 6、常见问题处理 1、创建挂载目录 # 创建宿主机rabbitMQ挂载目录 sudo mkdir -p /data/docker/rabbitmq/log# 修改log目录权限 sudo chmod 777 /data/do…...

P6打卡—Pytorch实现人脸识别

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 1.检查GPU import torch import torch.nn as nn import matplotlib.pyplot as plt import torchvisiondevicetorch.device("cuda" if torch.cuda.is_…...

clickhouse-介绍、安装、数据类型、sql

1、介绍 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 OLAP(On-Line A…...

基于单片机的智能婴儿床监护系统多功能婴儿床摇篮系统

功能介绍 以STM32单片机为控制核心蓝牙传输控制可以进行哭闹检测、尿床检测、音乐播放、语音提醒、哭闹时可以进行摇床有不同的模式自动模式和睡眠模式 实物可做,其他功能也可以 电路图 PCB 源代码 u8 Temperature_High; //室内温度高阈值 u8 Temperature_…...

微服务??

1、微服务架构的定义是什么? 微服务架构是一种将应用程序拆分为多个小型、独立服务的架构风格,每个服务专注于完成特定功能,通过轻量级通信协议(如HTTP/REST、gRPC)进行协作。 2、微服务和单体架构有哪些主要区别&am…...

14-zookeeper环境搭建

0、环境 java:1.8zookeeper:3.5.6 1、下载 zookeeper下载点击这里。 2、安装 下载完成后解压,放到你想放的目录里。先看一下zookeeper的目录结构,如下图: 进入conf目录,复制zoo_sample.cfg&#xff0…...

计算机网络 八股青春版

什么是HTTP?HTTP和HTTPS的区别 HTTP HTTP是超文本运输协议,是一种无状态(每次请求都是独立的)的应用层协议。用于在客户端和服务器之间传输超文本数据(如HTML文件)。默认端口是80数据以明文形式传输&#…...

快速解决oracle 11g中exp无法导出空表的问题

在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…...

Unity 6 Preview(预览版)新增功能

原文链接:Unity - 手册:Unity 6 预览版中的新增功能 目录 原文链接:Unity - 手册:Unity 6 预览版中的新增功能 编辑器和工作流程 UI 工具包 实体 图形 URP HDRP (HDRP) 多人游戏 游戏对象的 Netc…...

Halcon单相机+机器人=眼在手上#标定心得

首先,这个标定板肯定是放在我们要作业的工作台上的 目的 **1,得到标定物(工作台)与机器人底座之间的pose转换关系。2,得到相机与机器人末端tool的的转换关系。 两个不确定的定量 1,标定板与机器人底座b…...

Django 模板分割及多语言支持案例【需求文档】-->【实现方案】

Django 模板分割及多语言支持案例 这个案例旨在提供一个清晰的示范,展示如何将复杂的页面分解为多个可复用的模板组件,使代码更加模块化和易于管理。希望这篇案例文章对你有所帮助。 概述 在 Django 项目开发中,使用模板分割和多语言支持能…...

【hackmyvm】Diophante 靶场

1. 基本信息^toc 这里写目录标题 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. knock 3. WordPress利用3.1. wpscan扫描3.2. smtp上传后门 4. 提权4.1. 提权leonard用户4.2. LD劫持提权root 靶机链接 https://hackmyvm.eu/machines/machine.php?vmDiophante 作者…...

基于MATLAB的图像增强

🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 一、背景及意义介绍背景图像采集过程中的局限性 意义 二、概述三、代码结构及说明(一)整体结构(二&#xf…...

P10425 [蓝桥杯 2024 省 B] R 格式

题目描述: 小蓝最近在研究一种浮点数的表示方法:R 格式。对于一个大于 00 的浮点数 d,可以用 R 格式的整数来表示。给定一个转换参数 n,将浮点数转换为 R 格式整数的做法是: 将浮点数乘以 2^n。四舍五入到最接近的整…...

《软件工程文档攻略:解锁软件开发的“秘籍”》

《软件工程文档攻略:解锁软件开发的“秘籍”》 一、引言(一)简述软件工程文档的重要地位 二、软件文档的分类及作用(一)按形式分类1. 工作表格2. 文档或文件 (二)按产生和使用范围分类1. 开发文…...

Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...

sqlilabs靶场二十一关二十五关攻略

第二十一关 第一步 可以发现cookie是经过64位加密的 我们试试在这里注入 选择给他编码 发现可以成功注入 爆出表名 爆出字段 爆出数据 第二十二关 跟二十一关一模一样 闭合换成" 第二十三关 第二十三关重新回到get请求,会发现输入单引号报错&#xff0c…...

时间管理系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…...

长轮询DeferredResult原理

DeferredResult常用来实现客户端长轮询,可以将异步处理的结果在特定时间内(如果设置了超时时间)返回给客户端。 Slf4j RestController RequestMapping("/demo") public class DemoDeferredResult {GetMapping("/deferredResu…...

TouchGFX移植(5)增加触屏驱动

一)增加驱动代码gt9xxx.c和ctiic.c到工程中的BSP目录下: 二)更改触摸文件STM32TouchController.cpp 1)在STM32TouchController.cpp文件中增加: #include “gt9xxx.h” 2)增加gt9xxx_init(); void STM32TouchControlle…...

(九)腾讯cloudstudio(ubuntu)+akiaaa大神 Stable Diffusion整合包 AI绘画教程

一、说明 在网上转了一圈,发现确实akiaaa大神的整合包不错,看看这界面就比我前面的流弊多了,后面我们就要把这个界面一步一步干出来 二、环境准备 这里和前面的一样 (七)腾讯cloudstudioStable-Diffusion-webui AI绘…...

设计模式-访问者设计模式

介绍 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变个元素的类的前提下定义作用于这些元素的新操作。 问题:在一个机构里面有两种员工,1.Teacher 2.Engineer 员…...

深度学习实战车辆目标跟踪【bytetrack/deepsort】

本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化,该数据集包含丰富的车辆目标图像样本…...

lammps中EDGE、INF、NULL等常量的含义

在lammps命令中,有几个比较常见的量:EDGE、INF、NULL,不少初学者不知道什么意思,本文详细介绍一下这几个量的含义及用法。 1. EDGE EDGE表示当前box的边界,常用到需要设置坐标的命令中,如region、fix wall/reflect。 EDGE仅表示当前box边界的坐标值,当box尺寸发生变化后…...

Mono里建立调试C#脚本运行环境

前面已经介绍了怎么样来执行一个嵌入式的脚本框架, 这个框架是mono编写的一个简单的例子。 如果不清楚,可以参考前文: https://blog.csdn.net/caimouse/article/details/144632391?spm=1001.2014.3001.5501 本文主要来介绍一下,我们的C#脚本是长得怎么样的,它大体如下…...

241221面经

1,JVM 的实现中堆、栈和方法区的区别是什么? 堆(Heap) 功能 堆是 JVM 内存中最大的一块,主要用于存储对象实例。无论是通过new关键字创建的对象,还是数组,都在堆上分配内存。它是被所有线程共享…...

【论文复刻】新型基础设施建设是否促进了绿色技术创新的“量质齐升”—来自国家智慧城市试点的证据(C刊《中国人口·资源与环境》

一、数据来源:住建部、国家知识产权局、中国城市统计年鉴,内含原始数据、处理代码和基准回归 二、数据范围: DID 为了延长政策效应估计的时间区间,将住建部公布的首批国家智慧城市作为处理组,非试点城市作为对照组。将…...

libreoffice表格python宏教程 一

一、安装python宏扩展 LibreOffice自带了一个宏编辑器,但是只能用basic语言,无法用Python。 所以,我们必须在单独的编辑器中编写Python代码。 需要安装apso扩展,此扩展可以创建删除管理python宏文件,同时还能设置偏好…...

C/C++语言基础--C++STL库之仿函数、函数对象、bind、function简介

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 STL无疑是C史上一个重要的发明,未来我将更新STL有关的知识点,入门绝对够了(看目录就知道了👀)这是第二篇,讲仿函数C语言后面也会继续更新知识点,如…...

前端导出PDF的组件及方法

前端导出PDF的组件及方法 在Web应用程序中,导出PDF文件是一项常见的需求。无论是为了打印、分享还是存档,能够将网页内容转换为PDF格式都非常有用。幸运的是,前端开发者有多种方法和组件可以实现这一功能。在本文中,我们将详细介…...

大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…...

水文知识图谱构建-学习+代码

文章目录 水文模型知识图谱构建与应用(核心)面向水利防汛抢险的知识图谱构建与应用知识图谱在水利工程中的构建与应用代码 水文模型知识图谱构建与应用(核心) 水文模型知识图谱构建与应用 题目:水文模型知识图谱构建…...

python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django

windows首先安装rabbitmq 点击参考安装 1、环境介绍 Python 3.10.16 其他通过pip安装的版本(Django、pika、celery这几个必须要有最好版本一致) amqp 5.3.1 asgiref 3.8.1 async-timeout 5.0.1 billiard 4.2.1 celery 5.4.0 …...

clickhouse优化记录

一、注重使用分区键来加快查询 在大数据量的情况下,如果查询语句中,可以使用分区键来进行查询,可以极大缩小数据的查询范围,加快查询速度。 二、使用order by的列,适用最左前缀匹配原则 比如表的结构是 order by(id…...

RabbitMQ如何构建集群?

大家好,我是锋哥。今天分享关于【RabbitMQ如何构建集群?】面试题。希望对大家有帮助; RabbitMQ如何构建集群? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在RabbitMQ中,集群(Cluster&#x…...