在 Elasticsearch Serverless 上使用 Eland

作者:来自 Elastic Quentin Pradet

本博客将向你展示如何使用 Eland 将机器学习模型导入 Elasticsearch Serverless,然后如何使用类似 Pandas 的 API 探索 Elasticsearch。

Elasticsearch Serverless 中的 NLP

自 Elasticsearch 8.0 起,可以直接从 Elasticsearch 使用 NLP 机器学习模型。虽然某些模型例如 ELSER(用于英语数据)或 E5(用于多语言数据))可以直接从 Kibana 部署,但所有其他兼容的 PyTorch 模型都需要使用 Eland 上传。

自 Eland 8.14.0 起,eland_import_hub_model 完全支持 Serverless。要获取连接详细信息,请在 Kibana 中打开你的 Serverless 项目,选择 “cURL” 客户端,创建 API 密钥,然后导出环境变量:

export ES_URL="https://[...].elastic.cloud:443"
export API_KEY="..."

然后你可以在运行 eland_import_hub_model 时使用这些变量:

$ docker run -it --rm --network host \
    docker.elastic.co/eland/eland \
    eland_import_hub_model \
      --url $ES_URL \
      --es-api-key $API_KEY \
      --hub-model-id elastic/distilbert-base-cased-finetuned-conll03-english \
      --task-type ner

接下来,在 Kibana 中搜索 “Trained Models”,它将提供同步你训练过的模型。

完成后,你将获得部署模型的选项:

不到一分钟后,你的模型就应该部署了,你将能够直接从 Kibana 对其进行测试。

在这个测试句中,模型成功地将 Joe 识别为 “Person”,并将 “Reunion Island” 识别为地点,概率很高。

有关将 Eland 用于机器学习模型(包括 scikit-learn、XGBoost 和 LightGBM,本文未介绍)的更多详细信息,请考虑阅读详细的在 Elastic 中访问机器学习模型博客文章并参考 Eland 文档。

Eland 中的数据框

Eland 的另一个主要功能是使用类似 Pandas 的 API 探索 Elasticsearch 数据。

摄取测试数据

首先,让我们将一些测试数据索引到 Elasticsearch。我们将使用一个假的航班数据集。虽然可以使用 Python Elasticsearch 客户端上传,但在本文中,我们将使用 Kibana 的文件上传功能,这足以进行快速测试。

  1. 首先,下载数据集 https://github.com/elastic/eland/blob/main/tests/flights.json.gz 并解压缩 (gunzip flights.json.gz)。
  2. 接下来,在 Kibana 的搜索栏中输入 “File Upload” 并导入 flights.json 文件。
  3. Kibana 将向你显示结果字段,例如,“Cancelled” 被检测为布尔值。单击 “Import”。
  4. 在下一个屏幕上,选择 “flights” 作为索引名称,然后再次单击 “Import”。

如下面的屏幕截图所示,你应该看到 13059 份文档已成功纳入 “flights” 索引。

连接到 Elasticsearch

现在我们有了要搜索的数据,让我们设置 Elasticsearch Serverless Python 客户端。(虽然我们可以使用主客户端,但 Serverless Elasticsearch Python 客户端通常更易于使用,因为它仅支持 Elasticsearch Serverless 功能和 API。)从 Kibana 主页,你可以选择 Python,它将解释如何安装 Elasticsearch Serverless Python 客户端、创建 API 密钥以及在你的代码中使用它。你应该得到以下代码:

from elasticsearch_serverless import Elasticsearch

client = Elasticsearch(
    "https://[...].es.eu-west-1.aws.elastic.cloud:443",
    api_key="your_api_key"
)

print(client.info())

使用 Eland 搜索数据

最后,假设上述代码有效,我们可以开始使用 Eland。使用 python -m pip install eland>=8.14 安装后,我们可以开始探索我们的航班数据集。

import eland as ed
from elasticsearch_serverless import Elasticsearch

client = Elasticsearch("https//...", api_key="...)
df = ed.DataFrame(client, es_index_pattern="flights")
df.head()

如果你在笔记本中运行此代码,结果将是下表:

AvgTicketPriceCancelledCarrierDestDestAirportIDDestCityNameDestCountryDestLocation.latDestLocation.lonDestRegion...OriginOriginAirportIDOriginCityNameOriginCountryOriginLocation.latOriginLocation.lonOriginRegionOriginWeatherdayOfWeektimestamp
882.982662FalseLogstash AirwaysVenice Marco Polo AirportVE05VeniceIT45.50529912.3519IT-34...Cape Town International AirportCPTCape TownZA-33.9648017918.60169983SE-BDClear02018-01-01T18:27:00
730.041778FalseKibana AirlinesXi'an Xianyang International AirportXIYXi'anCN34.447102108.751999SE-BD...Licenciado Benito Juarez International AirportAICMMexico CityMX19.4363-99.072098MX-DIFDamaging Wind02018-01-01T05:13:00
841.265642FalseKibana AirlinesSydney Kingsford Smith International AirportSYDSydneyAU-33.94609833151.177002SE-BD...Frankfurt am Main AirportFRAFrankfurt am MainDE50.0333338.570556DE-HESunny02018-01-01T00:00:00
181.694216TrueKibana AirlinesTreviso-Sant'Angelo AirportTV01TrevisoIT45.64839912.1944IT-34...Naples International AirportNA01NaplesIT40.88600214.2908IT-72Thunder & Lightning02018-01-01T10:33:28
552.917371FalseLogstash AirwaysLuis Munoz Marin International AirportSJUSan Juan

你还可以运行更复杂的查询,例如聚合:

df[["DistanceKilometers", "AvgTicketPrice"]].aggregate(["sum", "min", "std"])

输出以下内容:

DistanceKilometersAvgTicketPrice
sum9.261629e+078.204365e+06
min0.000000e+001.000205e+02
std4.578614e+032.664071e+02

文档中的 demo notebook 有更多使用相同数据集的示例,参考文档列出了所有支持的操作。

准备好自己尝试一下了吗?开始免费试用。
Elasticsearch 集成了 LangChain、Cohere 等工具。加入我们的高级语义搜索网络研讨会,构建你的下一个 GenAI 应用程序!

原文:Eland on Elasticsearch Serverless: Searching data with Eland — Search Labs

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL专项练习第二天

在数据处理和分析中,Hive 是一个强大的工具。本文将通过五个 Hive 相关的问题展示其在不同场景下的应用技巧。 先在home文件夹下建一个hivedata文件夹,把我们所需的数据写成txt文件导入到/home/hivedata/文件夹下面。 一、找出连续活跃 3 天及以上的用户…

【AI论文精读1】针对知识密集型NLP任务的检索增强生成(RAG原始论文)

目录 一、简介一句话简介作者、引用数、时间论文地址开源代码地址 二、摘要三、引言四、整体架构(用一个例子来阐明)场景例子:核心点: 五、方法 (架构各部分详解)5.1 模型1. RAG-Sequence Model2. RAG-Toke…

Python+Matplotlib创建y=sinx、y=cosx、y=sinx+cosx可视化

y sin x (奇函数): 图像关于原点对称。 对于任何 x,sin(-x) -sin(x),符合奇函数定义。 y cos x (偶函数): 图像关于 y 轴对称。 对于任何 x,cos(-x) cos(x),符合偶函数定义。 y sin x cos x (既…

安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo

安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo 安全帽头盔检测数据集介绍 数据集名称 安全帽头盔检测数据集 (Safety Helmet and Person Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型(包括YOLOv5、YOLOv6、YOLOv7…

LabVIEW机床加工监控系统

随着制造业的快速发展,机床加工的效率与稳定性成为企业核心竞争力的关键。传统的机床监控方式存在效率低、无法远程监控的问题。为了解决这些问题,开发了一种基于LabVIEW的机床加工监控系统,通过实时监控机床状态,改进生产流程&am…

Spring MVC__入门

目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC 二、Spring MVC实现原理2.1核心组件2.2工作流程 三、helloworld1、开发环境2、创建maven工程3、配置web.xml4、创建请求控制器5、创建springMVC的配置文件6、测试HelloWorld7、总结 一、SpringMVC简介 1、什么是MVC MV…

html5 + css3(上)

目录 HTML初识基础认知web标准vscode的简介和使用注释 HTML标签学习排版标签标题和段落换行和水平线标签 文本格式化标签媒体标签图片标签图片-基本使用图片-属性 路径绝对路径相对路径 音频标签视频标签链接标签 HTML基础列表标签列表-无序和有序列表-自定义 表格标签表格-使用…

【JAVA开源】基于Vue和SpringBoot的周边产品销售网站

本文项目编号 T 061 ,文末自助获取源码 \color{red}{T061,文末自助获取源码} T061,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

Java网络通信—UDP

0.小记 1.udp通信不需要建立socket管道,一边只管发,一边只管收 2.客户端:将数据(byte)打包成包裹(DatagramPacket),写上地址(IP端口),通过快递站&…

【HTML并不简单】笔记1-常用rel总结:nofollow、noopener、opener、noreferrer,relList

文章目录 rel"nofollow"rel"noopener"与rel"opener"rel"noreferrer"relList对象 《HTML并不简单:Web前端开发精进秘籍》张鑫旭,一些摘要: HTML,这门语言的知识体系非常庞杂,涉…

Nagle 算法:优化 TCP 网络中小数据包的传输

1. 前言 在网络通信中,TCP(传输控制协议)是最常用的协议之一,广泛应用于各种网络应用,如网页浏览、文件传输和在线游戏等。然而,随着互联网的普及,小数据包的频繁传输成为一个不容忽视的问题。…

php email功能实现:详细步骤与配置技巧?

php email发送功能详细教程?如何使用php email服务? 无论是用户注册、密码重置,还是订单确认,电子邮件都是与用户沟通的重要手段。AokSend将详细介绍如何实现php email功能,并提供一些配置技巧,帮助你更好…

spring揭秘25-springmvc03-其他组件(文件上传+拦截器+处理器适配器+异常统一处理)

文章目录 【README】【1】文件上传与MultipartResolver【1.1】使用MultipartResolver进行文件上传【1.2】springmvc处理multipart多部件请求流程【1.3】使用springmvc上传文件代码实现(springmvc6.10版本): 【2】Handler与HandlerAdaptor&…

【含文档】基于Springboot+Vue的活力健身馆管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

劳动与科技、艺术结合更好提高劳动教育意义

在中小学教育中,劳动教育是培养学生基本生活技能和劳动习惯的重要环节。但当代的劳动教育不在单纯的劳动,而是劳动技能的提升与学习,通过学习劳动技能与实践活动,强化劳动教育与其他课程的融合,学生深刻理解劳动的意义…

如何在每台设备上恢复已删除的照片

从 PC、智能手机或 USB 闪存驱动器丢失图像可能会让人不知所措。幸运的是,使用最好的照片恢复软件,你可以在Windows和Mac上找回已删除的照片。该博客讨论了如何使用 Photos Recovery 恢复丢失的图像。 数码照片是我们记忆的重要组成部分。但是&#xff…

【自然语言处理】(1) --语言转换方法

文章目录 语言转换方法一、统计语言模型1. 词向量转换2. 统计模型问题 二、神经语言模型1. 词向量化2. 维度灾难3. 解决维度灾难4. embedding词嵌入5. Word2Vec技术5.1 连续词袋模型(CBOW)5.2 跳字模型(Skip-gram) 总结 语言转换方…

Vue3中使用axios

Promise介绍 同步代码与异步代码 安装并引入axios npm install axios 此时package.json里面就多了axios依赖 引入axios 获取数据 Axios GET参数构成:axios.get(url,{config{},…{}…}) url: 字符串:目标服务器的地址,如 https://api.examp…

需求6:如何写一个后端接口?

这两天一直在对之前做的工作做梳理总结,不过前两天我都是在总结一些bug的问题。尽管有些bug问题我还没写文章,但是,我今天不得不先停下对bug的总结了。因为在国庆之后,我需要自己开发一个IT资产管理的功能,这个功能需要…

【Redis】如何在 Ubuntu 上安装 Redis 5

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 本期内容主要介绍如何在 Ubuntu 上安装 Redis5 一些碎碎念: 本来这期内容介绍如何在 Centos 安装 Redis …