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

《一本书讲透 Elasticsearch》京东评论采集+存储+可视化全 AI 实现

98ddde69375dcb0a5848ba3de03a8b02.png

经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍,豆瓣评分的人并不多。42d9a9b275fe8b9d9091a23459d7ab49.png

而京东作为主要读书销售渠道,非常有必要整合一下京东读者评论,看看读者们都说了什么,以便后续的改进!

一条条的翻看非常不方便,干脆能不能搞个爬虫把评论采集下来呢?这是我最初始的想法。

1e4c179f8f2d72719c8f3268dcaf36da.png

等我采集下来数据后,我就想咱们有 kibana,有 Elastic Stack 技术栈体系,能不能顺带做个可视化效果图呢?

于是就有了开篇的效果图。

读者们可能会说,书中第18章就讲的怎么处理,看下来也并不复杂。是的,基本都是重复的工作。

我进一步想,能不能尽可能一行代码也不写,全部借助大模型 ChatGPT 完成呢。

所以,和之前不同,整个采集、解析、Elasticsearch 预处理、写入 Elasticsearch 等全过程全是基于大模型问答完成的。

如果你对 AI 代码实现感兴趣,如果你对上面可视化效果感兴趣,建议看到最后。

1、AI 工具选型

我近期使用大模型最大的收获就是:一定要货比三家

不要依赖任何一种大模型,哪怕付费版的ChatGPT,一定得货比三家,都试试。

3e6fbfb702473174dcba22e5820761c2.png

我近期用的最多也是我逢人就推荐的是:ChatGPT 4o 付费版本(每个月20美金)。

另外我用的 perplexity AI,他的整合能力是远远大于 Kimi的(个人观点,欢迎留言交流)。

9493eb8e591993e9efc01882013dd5b8.png

2、整体架构构思

大模型有了以后,写代码相当于外包给大模型了,我们基本不用写了,只需要微调就可以。

什么能力变得更加急迫呢?Prompt 能力、提示词能力、提问能力变得越发重要!

提问什么呢?还是需要我们提前整体构思。

类似数据存储到可视化,咱们视频都录制过好几期,战争电影题材评论的、Wireshark抓包的、微博评论的,都做了可视化处理。

核心就是:

  • Step1:数据采集

  • Step2:数据清洗(看是否需要)

  • Step3:数据预处理

  • Step4:数据写入 Elasticsearch

  • Step5:Kibana 可视化

Step3 和 Step4 步骤可以互换的,因为 Elasticsearch 预处理是借助 pipeline 实现的,可以索引创建阶段,也可以写入后借助 update_by_query 批量更新实现。

有了上面整体构思,剩下就是逐个击破。

逐个构思 Prompt,让咱们的外包 AI 帮写代码,我们只需要评审代码,用代码就可以了。

3、数据采集

其实这个需要电脑端打开某东,实际调研发现,某东是有 API 接口的,不过频繁调用会封禁 24 小时。

还好咱们的数据量不大。

2aa51a5dd7c75bfb724009641d067760.png

接口参考如下:

b90ff55a32d5d00c586922a64b2b7844.png

有了接口之后,我们会发现如入无人境地,“拿”数据变得容易、可行!

83993642229a98bef9c1e5338832dab6.png

f9bf4fc1dda7759c3b01ac53eb243264.png

详尽代码参见:https://articles.zsxq.com/id_lj2wtgectd25.html

这里的提示词可以反复提问,我是借助 perplexity.ai 实现的。

00839095830a9d05eafabeacffc70a8a.png

3ad78a47655371e21cade39c9f42954e.png

中间代码不一定 100% 正确,需要我们拿到代码微调一下,确保可用,可以采集到才可以。

3、数据写入与存储

3.1 写入前,先创建索引。

这里最核心的 Mapping 和 Setting,弄不好,后面可视化要经常返工。

我把全部的评论都丢给 ChatGPT 4o1-mini, 让他帮我想可以可视化的维度。结果是模型比我想的更加全面。

057ea9d5d88d33425991fd3b9d7c6fba.png

然后,我提取了可以可视化的部分,让 GPT 帮创建的索引。Prompt 参考如下:

45676cfa6dd2e75c3d9a1798951f2da6.png

最终代码和DSL 完整版:https://articles.zsxq.com/id_cidkaht43ssd.html

3.2 数据写入

注意:字段原因,我先写入,后做的预处理。

上面采集数据已经存储为 csv,且验证是正确的后。正常应该对数据做一下清洗,我没有做任何处理,直接写入 Elasticsearch。

写入 Elasticsearch,这个也不复杂,就是多轮问一下就可以。

参见提示词:

cb8244b8ccb462f25c5ef5739fd697fc.png

4、数据预处理

为什么需要预处理?

因为采集的地理位置信息是省份。

我们之前积累的可视化必须是城市的 GEO 经纬度坐标信息。

所以,这里需要两次转换。

第一:省对应省会,比如:咱们采集到的河北,需要新增字段:石家庄。

第二:省会对应 GEO 经纬度坐标。(前面做战争题材有积累,我猜测不用积累,直接生成问题也不大)。

这块也可以提问实现。

a641f8d655f422301302776df39398cb.png

最终效果参考:

4885e3d963b34f52f7bee2a76f21d74e.png

5、Kibana 可视化

这快咱们视频讲的很多,基本一步步实现就行。

这块没有用AI ,自己搞定就可以。

结果就是大家开头看到的结果。

5.1 读者城市分布图

440b1c44fc0b2c0a14e72b56291ac604.png

基本覆盖全国各个大城市。

5.2 省份分布条形图63172bc08769c322f9c8aa5889a887f7.png

5.3 读者评分饼状图

c3cd2429d1ebb9bc6d397f5f10980bb3.png

看得出来,90.48%左右给出了5分好评!

5.4 评论词云效果图
f8d14211abd97bc9f062263165881e20.png

5.5 时间走势图

273a79e1f931e7ff562950529497d053.png

走势相对趋于平稳态势。

5.6 销量图

624e9f33dae0c6d2747658d47fd144c9.png

这个是咱们自己加的文字和配图,kibana 端是允许导入的。

基本和预期一致!!

6、AI 使用反思

之前自己写代码效率和现在相比是小巫见大巫,基本 AI 能解放很大一部分双手。

但是,最好的方式和 AI 一起讨论逐步给出清晰的解析方案。

AI 就是我们的架构师、大学教授、代码外包工程师、XXXX 一切都可以是。看我们怎么用它!

AI 一定不要一棵树吊死,一定要货比三家。

7、全部基于真实评论书评汇总

Elasticsearch 作为当今最流行的分布式搜索和分析引擎之一,在大数据存储和检索领域扮演着重要角色。

1bdea271bc61220154bea37d2ebfbb80.png

然而,市面上关于 Elasticsearch 的书籍大多版本较旧,且内容偏重于代码层面的讲解,缺乏对最新版本的系统性阐述。

近期出版的《一本书讲透 Elasticsearch:原理、进阶与工程实践》填补了这一空白,受到了广大读者的热烈好评。

读者真实反馈采集:https://t.zsxq.com/nS4va

7.1 全面覆盖 Elasticsearch 8.x 版本

这本书是市面上少有的全面讲解 Elasticsearch 8.x 版本的书籍之一。

很多读者反馈,书中内容紧跟最新版本,让他们在学习和工作中受益匪浅。

“这貌似是市面上第一本 8.x 的书,也是少有的 Elastic 创始人推荐的书。”——读者反馈

52ff383714aa0ffef5fe0ccdeea33f0e.png

7.2 从入门到精通,由浅入深的讲解

书中内容结构清晰,从基础原理开始,一步步引导读者深入理解 Elasticsearch 的核心概念和高级特性。无论是新手入门,还是有经验的开发者,都能从中找到有价值的内容。

“由浅入深,讲得很透彻,个人推荐购买阅读。”——读者反馈

35a6fc568355307507f6ca265e416bdb.png

“从简到难,一步步清晰的引导,完整的配套学习资料给学习添砖加瓦。”——读者反馈

bae1e97d88c4046c10c00c3482a3e953.png

7.3 实战案例与工程实践

除了理论知识,书中还包含了大量的实战案例和工程实践经验。这些内容源自作者多年的一线工作积累,具有很高的实用价值。

“既有底层原理的讲解,又有实战案例的分析,适合从事大数据存储和检索的工程师阅读。”——读者反馈

f1ff647e8ef6c21daa8d24a2e629034a.png

“里面写了作者经验之谈,很实用,面试 offer 每天都有。”——读者反馈

7.4 精心的内容设计与排版

不少读者提到,书的排版和字体设计合理,纸张质量好,阅读体验佳。同时,每章末尾的思维导图总结,也方便了知识的梳理和回顾。

“封面是磨砂质感的,页面排版和字体都很好,有看下去的欲望。”——读者反馈

8a214be2596f7ba58ec4f9b0c3d14137.png

“每章末尾脑图部分总结,看得出作者的用心。”——读者反馈

b6b17c411daa8b13fde57f72759d6605.png

7.5 适合的学习人群

这本书适合以下人群阅读:

  • Elasticsearch 初学者:从零开始,系统性地学习 Elasticsearch 的核心概念和使用方法。

  • 有经验的开发者:深入理解 Elasticsearch 的高级特性和内部原理,提升技术水平。

  • 大数据工程师:掌握 Elasticsearch 在大数据存储和检索中的应用。

  • 面试求职者:书中涵盖了大量实用知识点,有助于在面试中脱颖而出。

7.6 读者的真实反馈

许多读者在阅读后,都给予了高度评价:

  • 干货满满:内容详实,涵盖了从基础到高级的各个方面。

a0eb3d95fdf410f074a95acf86839b3b.png

  • 结构清晰:章节安排合理,逻辑性强,易于理解和消化。

e3d44c332c6cafe31def4091ecf6872d.png

  • 实用性强:结合实际案例,提供了很多可操作的经验和技巧。

de1e0099916ea4bfdb109321e12519a4.png

8、结语

《一本书讲透 Elasticsearch:原理、进阶与工程实践》无疑是一本不可多得的好书。它不仅填补了 Elasticsearch 8.x 版本的空白,还以其全面、深入和实用的特点,成为广大技术人员的必备参考书。

如果你正在寻找一本能够全面提升自己 Elasticsearch 技能的书籍,不妨一读。

参考:Kibana 8.X 如何做出靠谱的词云图?

相关文章:

《一本书讲透 Elasticsearch》京东评论采集+存储+可视化全 AI 实现

经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍,豆瓣评分的人并不多。 而京东作为主要读书销售渠道,非常有必要整合一下京东读者评论,看看读者们都说了什么,以便后续的改进! 一条条的翻看非常不方便,…...

uniapp中webview全屏不显示导航栏解决方案

uniapp官网文档地址&#xff1a;https://uniapp.dcloud.net.cn/api/window/window.html#getappwebview <template><view class"index"><u-navbar :is-back"true" title"标题"" :title-width"650"></u-navb…...

Dear ImGui 使用VS2022编译为静态库

Dear ImGui 是一个无臃肿的 C++ 图形用户界面库。它输出优化的顶点缓冲区,您可以在支持 3D 管道的应用程序中随时渲染这些缓冲区。它速度快、可移植、与渲染器无关且自成一体(无外部依赖项)。 Dear ImGui 旨在实现快速迭代,并让程序员能够创建内容创建工具和可视化/调试工具…...

5G 现网信令参数学习(3) - RrcSetup(1)

目录 1. rlc-BearerToAddModList 1.1 rlc-Config 1.1.1 ul-AM-RLC 1.1.2 dl-AM-RLC 1.2 mac-LogicalChannelConfig 2. mac-CellGroupConfig 2.1 schedulingRequestConfig 2.2 bsr-Config 2.3 tag-Config 2.4 phr-Config 2.5 skipUplinkTxDynamic 3. physicalCellG…...

PHP实现身份证OCR识别API接口

随着社会的发展&#xff0c;身份认证需求不断增长&#xff0c;这与身份证OCR识别技术的发展密切相关。在当今社会&#xff0c;各个领域都需要进行身份认证。传统的人工手动录入身份证信息费时费力&#xff0c;速度慢且容易出错&#xff0c;体验不佳。而身份证 OCR 识别技术通过…...

关于 Qt+Osg中使用背景图HUD受到后绘制几何图形顶点颜色影响 的解决方法

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/143607816 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、Op…...

[CKS] K8S AppArmor Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] …...

redis笔记-数据结构

zset zset一方面它是一个 set&#xff0c;保证了内部value 的唯一性&#xff0c;另一方面它可以给每个 value 赋予一个 score&#xff0c;代表这个 value 的排序权重。 zset的底层是由字典和跳表实现。 字典主要用来存储value和score的对应关系。跳表这个数据结构主要用来提…...

webpack的常见配置

Webpack 是一个现代 JavaScript 应用的模块打包工具&#xff0c;用于将项目中的多个文件和依赖打包成浏览器可以识别的文件&#xff0c;通常是一个或多个 JavaScript、CSS 或其他静态资源的 bundle&#xff08;将多个模块或文件合并成一个或几个文件的过程&#xff0c;这些合并…...

text-embedding-ada-002;BGE模型;M3E模型是Moka Massive Mixed Embedding;BERT

目录 text-embedding-ada-002 一、模型概述 二、模型功能 三、模型特点 四、模型应用 五、模型优势 BGE模型 一、模型背景与特点 二、模型性能与表现 三、模型迭代与发展 M3E模型是Moka Massive Mixed Embedding 一、基本信息 二、技术特点 三、应用场景 四、性能…...

WebRTC 环境搭建

主题 本文主要描述webrtc开发过程中所需的环境搭建 环境&#xff1a; 运行环境&#xff1a;ubuntu 20.04 Node.js环境搭建 安装编译 Node.js 所需的依赖包: sudo apt-get update sudo apt-get install -y build-essential libssl-dev 下载 Node.js 源码: curl -sL htt…...

FastHTML快速入门:http方法,CSS文件和内联样式,其他静态媒体文件位置

HTTP方法 FastHTML通过函数名与HTTP方法进行匹配。到目前为止&#xff0c;我们定义的URL路由都是针对HTTP GET方法的&#xff0c;这是网页最常见的方法。 表单提交通常作为HTTP POST发送。在处理更动态的网页设计时&#xff0c;也就是所谓的单页应用&#xff08;SPA&#xff0…...

项目管理和研发管理中的痛点及其解决方案

在现代企业中&#xff0c;研发管理和项目管理面临着多重挑战&#xff0c;包括资源配置不当、沟通不畅、目标不明确、进度控制困难等。这些痛点不仅影响项目的顺利推进&#xff0c;还可能导致企业在市场竞争中处于劣势。尤其是在资源配置不当方面&#xff0c;企业往往难以合理分…...

机器学习(基础1)

数据集 sklearn玩具数据集 数据量小&#xff0c;数据在sklearn库的本地&#xff0c;只要安装了sklearn&#xff0c;不用上网就可以获取 sklearn现实世界数据集 数据量大&#xff0c;数据只能通过网络获取&#xff08;为国外数据集&#xff0c;下载需要梯子&#xff09; skle…...

我谈维纳(Wiener)复原滤波器

Rafael Gonzalez的《数字图像处理》中&#xff0c;图像复原这章内容几乎全错。上篇谈了图像去噪&#xff0c;这篇谈图像复原。 图像复原也称为盲解卷积&#xff0c;不处理点扩散函数&#xff08;光学传递函数&#xff09;的都不是图像复原。几何校正不属于图像复原&#xff0c…...

怎么看真假国企啊?怎么识别假冒国企的千层套路?

一、怎么看真假国企啊&#xff1f; 1.使用具有迷惑性的名称&#xff1a;假冒国企往往在名称中使用“中国”、“中”、“国”等字样&#xff0c;或与知名国企名称相似的字号&#xff0c;以增加其可信度。 2.注册资本虚高&#xff1a;为了显示实力&#xff0c;假冒国企可能会在…...

C#中break和continue的区别?

在C#编程语言中&#xff0c;break和continue是两个用于控制循环流程的关键字&#xff0c;但它们的作用和用途有所不同。 break关键字 break关键字用于立即终止它所在的最内层循环或switch语句&#xff0c;并跳出该循环或switch块。程序执行将继续进行循环或switch语句之后的下一…...

Linux部署nginx访问文件403

问题描述&#xff1a;在linux服务器上通过nginx部署&#xff0c;访问文件403 新配置了一个用户来部署服务&#xff0c;将部署文件更新到原有目录下&#xff0c;结果nginx访问403 原因&#xff1a;没有配置文件的读写权限&#xff0c;默认不可读写&#xff0c;nginx无法访问到文…...

华为OD机试 - 数字排列 - 深度优先搜索dfs算法(Python/JS/C/C++ 2024 C卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…...

Scrapy爬取heima论坛所有页面内容并保存到数据库中

前期准备&#xff1a; Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…...

Kafka参数了解

Kafka配置参数完整说明 1. 基础配置 参数名说明推荐值参考值broker.idbroker的唯一标识符每个节点唯一的整数1delete.topic.enable是否允许删除topictruetruelistenersbroker监听地址SASL_PLAINTEXT://host:9092SASL_PLAINTEXT://172.24.77.15:9092advertised.listeners对外发…...

sql专题 之 where和join on

文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时&#xff0c;一张表不足以查询到我们想要的数据&#xff0c;更多的时候我们需要联表查询。 联表查询我们一般会使用连接…...

day12:版本控制器

版本控制 使用到的命令&#xff1a; ls -al查看当前目录下的文件及文件夹mkdir新建目录rm -rf递归强制删除文件夹 一、安装配置 1、下载地址 Git 2、初始配置 #用户名 git config --global user.name "自定义用户名" #邮箱&#xff08;公司的联系方式--追责&…...

第四十一章 Vue之初识VueX

目录 一、引言 1.1. vuex的概念 1.2. vuex使用场景 1.3. 优势 二、创建演示项目 2.1. 构建项目步骤 2.2. 项目最终生成结构 2.3. 创建项目文件 2.3.1. App.vue 2.3.2. Son1.vue 2.3.3. Son2.vue 三、创建一个空仓库 3.1. 安装vuex 3.2. 新建仓库 3.3. 挂载仓库…...

GIT的基本使用与进阶

GIT的简单入门 一.什么是git&#xff1f; Git 是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件更改、管理代码版本以及协作开发。它主要由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为 Linux 内核开发而设计的。如今&#xff0c;Git 已经成为现代软件开发中…...

【Linux系统】—— 基本指令(二)

【Linux系统】—— 基本指令&#xff08;二&#xff09; 1 「alias」命令1.1 「ll」命令1.2 「alias」命令 2 「rmdir」指令与「rm」指令2.1 「rmdir」2.2 「rm」2.2.1 「rm」 删除普通文件2.2.2 「rm」 删除目录2.2.3 『 * 』 通配符 3 「man」 指令4 「cp」 指令4.1 拷贝普通…...

MFC工控项目实例三十实现一个简单的流程

启动按钮夹紧 密闭&#xff0c;时间0到平衡 进气&#xff0c;时间1到进气关&#xff0c;时间2到平衡关 检测&#xff0c;时间3到平衡 排气&#xff0c;时间4到夹紧开、密闭开、排气关。 相关代码 void CSEAL_PRESSUREDlg::OnTimer_2(UINT nIDEvent_2) {// if (nIDEvent_21 &am…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】文本点击事件

Android Studio 版本 Android Java TextView 实现 点击事件 参考 import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast;public c…...

json转excel,读取json文件写入到excel中【rust语言】

一、rust代码 将json文件写入到 excel中。&#xff08;保持json &#xff1a;key原始顺序&#xff09; use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value, from_str}; use std::error::Error; use std::io::{self, Write}; use std::path::{Path}; u…...

Java面试要点06 - static关键字、静态属性与静态方法

本文目录 一、引言二、静态属性&#xff08;Static Fields&#xff09;三、静态方法&#xff08;Static Methods&#xff09;四、静态代码块&#xff08;Static Blocks&#xff09;五、静态内部类&#xff08;Static Nested Classes&#xff09;六、静态导入&#xff08;Static…...

什么是专业建设/女装标题优化关键词

在Android开发当中经常会用到了需要ScrollView嵌套GridView或者是ListView的情况&#xff0c;由于这两款控件都自带滚动条&#xff0c;当他们碰到一起的时候便会出问题&#xff0c;即GridView或ListView会显示不全。 解决方案&#xff1a; 自定义GridView或ListView&#xff0c…...

免费文档模板网站/公司排名seo

哈希表&#xff1a;基于数组&#xff0c;不能重复且无序 将名称及单词与下标或数字对应起来 1.将字母或单词转换成下标或数字&#xff08;hashCode&#xff09;——过程讲解&#xff1a; 方案一&#xff1a;数字相加——数组下标太小 方案二&#xff1a;幂的连乘——数组下…...

如何建设社区网站/如何自己做一个网站

方舟生存进化里程碑式更新来了&#xff01;在最新的方舟生存进化193版中&#xff0c;官方终于对一直困扰着广大玩家的服务器延迟问题进行了全面彻底地优化&#xff0c;另外加入稀有的Alpha霸王龙以及和新石头巨兽门和空头陷阱&#xff0c;是不是非常的心动呢&#xff1f;下面就…...

通辽网站建设/网络舆情的网站

通过ftp通道将数据传出来。上传1.xml <!DOCTYPE xmlrootname [<!ENTITY % aaa SYSTEM "http://192.168.172.128:1234/ext.dtd"><!ENTITY % bbb SYSTEM "file:///E:///1.txt">%aaa;%ccc;%ddd;]> ext.dtd内容如下 <!ENTITY % ccc "…...

网站运营专员具体每天怎么做/微信小程序排名关键词优化

hashmap和hashtable的区别? HashMap和Hashtable的比较是Java面试中的常见问题&#xff0c;用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hash…...

帮人做网站如何收费/百度网络推广

这里是修真院前端小课堂&#xff0c;每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能&#xff0c;本篇分享的是&#xff1a; 【angularJS的两种路由ng-router和ui-router的…...