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

经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍,豆瓣评分的人并不多。
而京东作为主要读书销售渠道,非常有必要整合一下京东读者评论,看看读者们都说了什么,以便后续的改进!
一条条的翻看非常不方便,干脆能不能搞个爬虫把评论采集下来呢?这是我最初始的想法。

等我采集下来数据后,我就想咱们有 kibana,有 Elastic Stack 技术栈体系,能不能顺带做个可视化效果图呢?
于是就有了开篇的效果图。
读者们可能会说,书中第18章就讲的怎么处理,看下来也并不复杂。是的,基本都是重复的工作。
我进一步想,能不能尽可能一行代码也不写,全部借助大模型 ChatGPT 完成呢。
所以,和之前不同,整个采集、解析、Elasticsearch 预处理、写入 Elasticsearch 等全过程全是基于大模型问答完成的。
如果你对 AI 代码实现感兴趣,如果你对上面可视化效果感兴趣,建议看到最后。
1、AI 工具选型
我近期使用大模型最大的收获就是:一定要货比三家。
不要依赖任何一种大模型,哪怕付费版的ChatGPT,一定得货比三家,都试试。

我近期用的最多也是我逢人就推荐的是:ChatGPT 4o 付费版本(每个月20美金)。
另外我用的 perplexity AI,他的整合能力是远远大于 Kimi的(个人观点,欢迎留言交流)。

2、整体架构构思
大模型有了以后,写代码相当于外包给大模型了,我们基本不用写了,只需要微调就可以。
什么能力变得更加急迫呢?Prompt 能力、提示词能力、提问能力变得越发重要!
提问什么呢?还是需要我们提前整体构思。
类似数据存储到可视化,咱们视频都录制过好几期,战争电影题材评论的、Wireshark抓包的、微博评论的,都做了可视化处理。
核心就是:
Step1:数据采集
Step2:数据清洗(看是否需要)
Step3:数据预处理
Step4:数据写入 Elasticsearch
Step5:Kibana 可视化
Step3 和 Step4 步骤可以互换的,因为 Elasticsearch 预处理是借助 pipeline 实现的,可以索引创建阶段,也可以写入后借助 update_by_query 批量更新实现。
有了上面整体构思,剩下就是逐个击破。
逐个构思 Prompt,让咱们的外包 AI 帮写代码,我们只需要评审代码,用代码就可以了。
3、数据采集
其实这个需要电脑端打开某东,实际调研发现,某东是有 API 接口的,不过频繁调用会封禁 24 小时。
还好咱们的数据量不大。

接口参考如下:

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


详尽代码参见:https://articles.zsxq.com/id_lj2wtgectd25.html
这里的提示词可以反复提问,我是借助 perplexity.ai 实现的。


中间代码不一定 100% 正确,需要我们拿到代码微调一下,确保可用,可以采集到才可以。
3、数据写入与存储
3.1 写入前,先创建索引。
这里最核心的 Mapping 和 Setting,弄不好,后面可视化要经常返工。
我把全部的评论都丢给 ChatGPT 4o1-mini, 让他帮我想可以可视化的维度。结果是模型比我想的更加全面。

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

最终代码和DSL 完整版:https://articles.zsxq.com/id_cidkaht43ssd.html
3.2 数据写入
注意:字段原因,我先写入,后做的预处理。
上面采集数据已经存储为 csv,且验证是正确的后。正常应该对数据做一下清洗,我没有做任何处理,直接写入 Elasticsearch。
写入 Elasticsearch,这个也不复杂,就是多轮问一下就可以。
参见提示词:

4、数据预处理
为什么需要预处理?
因为采集的地理位置信息是省份。
我们之前积累的可视化必须是城市的 GEO 经纬度坐标信息。
所以,这里需要两次转换。
第一:省对应省会,比如:咱们采集到的河北,需要新增字段:石家庄。
第二:省会对应 GEO 经纬度坐标。(前面做战争题材有积累,我猜测不用积累,直接生成问题也不大)。
这块也可以提问实现。

最终效果参考:

5、Kibana 可视化
这快咱们视频讲的很多,基本一步步实现就行。
这块没有用AI ,自己搞定就可以。
结果就是大家开头看到的结果。
5.1 读者城市分布图

基本覆盖全国各个大城市。
5.2 省份分布条形图
 5.3 读者评分饼状图

看得出来,90.48%左右给出了5分好评!
5.4 评论词云效果图

 5.5 时间走势图

走势相对趋于平稳态势。
5.6 销量图

这个是咱们自己加的文字和配图,kibana 端是允许导入的。
基本和预期一致!!
6、AI 使用反思
之前自己写代码效率和现在相比是小巫见大巫,基本 AI 能解放很大一部分双手。
但是,最好的方式和 AI 一起讨论逐步给出清晰的解析方案。
AI 就是我们的架构师、大学教授、代码外包工程师、XXXX 一切都可以是。看我们怎么用它!
AI 一定不要一棵树吊死,一定要货比三家。
7、全部基于真实评论书评汇总
Elasticsearch 作为当今最流行的分布式搜索和分析引擎之一,在大数据存储和检索领域扮演着重要角色。

然而,市面上关于 Elasticsearch 的书籍大多版本较旧,且内容偏重于代码层面的讲解,缺乏对最新版本的系统性阐述。
近期出版的《一本书讲透 Elasticsearch:原理、进阶与工程实践》填补了这一空白,受到了广大读者的热烈好评。
读者真实反馈采集:https://t.zsxq.com/nS4va
7.1 全面覆盖 Elasticsearch 8.x 版本
这本书是市面上少有的全面讲解 Elasticsearch 8.x 版本的书籍之一。
很多读者反馈,书中内容紧跟最新版本,让他们在学习和工作中受益匪浅。
“这貌似是市面上第一本 8.x 的书,也是少有的 Elastic 创始人推荐的书。”——读者反馈

7.2 从入门到精通,由浅入深的讲解
书中内容结构清晰,从基础原理开始,一步步引导读者深入理解 Elasticsearch 的核心概念和高级特性。无论是新手入门,还是有经验的开发者,都能从中找到有价值的内容。
“由浅入深,讲得很透彻,个人推荐购买阅读。”——读者反馈

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

7.3 实战案例与工程实践
除了理论知识,书中还包含了大量的实战案例和工程实践经验。这些内容源自作者多年的一线工作积累,具有很高的实用价值。
“既有底层原理的讲解,又有实战案例的分析,适合从事大数据存储和检索的工程师阅读。”——读者反馈

“里面写了作者经验之谈,很实用,面试 offer 每天都有。”——读者反馈
7.4 精心的内容设计与排版
不少读者提到,书的排版和字体设计合理,纸张质量好,阅读体验佳。同时,每章末尾的思维导图总结,也方便了知识的梳理和回顾。
“封面是磨砂质感的,页面排版和字体都很好,有看下去的欲望。”——读者反馈

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

7.5 适合的学习人群
这本书适合以下人群阅读:
Elasticsearch 初学者:从零开始,系统性地学习 Elasticsearch 的核心概念和使用方法。
有经验的开发者:深入理解 Elasticsearch 的高级特性和内部原理,提升技术水平。
大数据工程师:掌握 Elasticsearch 在大数据存储和检索中的应用。
面试求职者:书中涵盖了大量实用知识点,有助于在面试中脱颖而出。
7.6 读者的真实反馈
许多读者在阅读后,都给予了高度评价:
干货满满:内容详实,涵盖了从基础到高级的各个方面。

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

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

8、结语
《一本书讲透 Elasticsearch:原理、进阶与工程实践》无疑是一本不可多得的好书。它不仅填补了 Elasticsearch 8.x 版本的空白,还以其全面、深入和实用的特点,成为广大技术人员的必备参考书。
如果你正在寻找一本能够全面提升自己 Elasticsearch 技能的书籍,不妨一读。
参考:Kibana 8.X 如何做出靠谱的词云图?
相关文章:
《一本书讲透 Elasticsearch》京东评论采集+存储+可视化全 AI 实现
经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍,豆瓣评分的人并不多。 而京东作为主要读书销售渠道,非常有必要整合一下京东读者评论,看看读者们都说了什么,以便后续的改进! 一条条的翻看非常不方便,…...
uniapp中webview全屏不显示导航栏解决方案
uniapp官网文档地址: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接口
随着社会的发展,身份认证需求不断增长,这与身份证OCR识别技术的发展密切相关。在当今社会,各个领域都需要进行身份认证。传统的人工手动录入身份证信息费时费力,速度慢且容易出错,体验不佳。而身份证 OCR 识别技术通过…...
关于 Qt+Osg中使用背景图HUD受到后绘制几何图形顶点颜色影响 的解决方法
若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/143607816 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、Op…...
[CKS] K8S AppArmor Set Up
最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。  专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] …...
redis笔记-数据结构
zset zset一方面它是一个 set,保证了内部value 的唯一性,另一方面它可以给每个 value 赋予一个 score,代表这个 value 的排序权重。 zset的底层是由字典和跳表实现。 字典主要用来存储value和score的对应关系。跳表这个数据结构主要用来提…...
webpack的常见配置
Webpack 是一个现代 JavaScript 应用的模块打包工具,用于将项目中的多个文件和依赖打包成浏览器可以识别的文件,通常是一个或多个 JavaScript、CSS 或其他静态资源的 bundle(将多个模块或文件合并成一个或几个文件的过程,这些合并…...
text-embedding-ada-002;BGE模型;M3E模型是Moka Massive Mixed Embedding;BERT
目录 text-embedding-ada-002 一、模型概述 二、模型功能 三、模型特点 四、模型应用 五、模型优势 BGE模型 一、模型背景与特点 二、模型性能与表现 三、模型迭代与发展 M3E模型是Moka Massive Mixed Embedding 一、基本信息 二、技术特点 三、应用场景 四、性能…...
WebRTC 环境搭建
主题 本文主要描述webrtc开发过程中所需的环境搭建 环境: 运行环境: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方法进行匹配。到目前为止,我们定义的URL路由都是针对HTTP GET方法的,这是网页最常见的方法。 表单提交通常作为HTTP POST发送。在处理更动态的网页设计时,也就是所谓的单页应用(SPA࿰…...
项目管理和研发管理中的痛点及其解决方案
在现代企业中,研发管理和项目管理面临着多重挑战,包括资源配置不当、沟通不畅、目标不明确、进度控制困难等。这些痛点不仅影响项目的顺利推进,还可能导致企业在市场竞争中处于劣势。尤其是在资源配置不当方面,企业往往难以合理分…...
机器学习(基础1)
数据集 sklearn玩具数据集 数据量小,数据在sklearn库的本地,只要安装了sklearn,不用上网就可以获取 sklearn现实世界数据集 数据量大,数据只能通过网络获取(为国外数据集,下载需要梯子) skle…...
我谈维纳(Wiener)复原滤波器
Rafael Gonzalez的《数字图像处理》中,图像复原这章内容几乎全错。上篇谈了图像去噪,这篇谈图像复原。 图像复原也称为盲解卷积,不处理点扩散函数(光学传递函数)的都不是图像复原。几何校正不属于图像复原,…...
怎么看真假国企啊?怎么识别假冒国企的千层套路?
一、怎么看真假国企啊? 1.使用具有迷惑性的名称:假冒国企往往在名称中使用“中国”、“中”、“国”等字样,或与知名国企名称相似的字号,以增加其可信度。 2.注册资本虚高:为了显示实力,假冒国企可能会在…...
C#中break和continue的区别?
在C#编程语言中,break和continue是两个用于控制循环流程的关键字,但它们的作用和用途有所不同。 break关键字 break关键字用于立即终止它所在的最内层循环或switch语句,并跳出该循环或switch块。程序执行将继续进行循环或switch语句之后的下一…...
Linux部署nginx访问文件403
问题描述:在linux服务器上通过nginx部署,访问文件403 新配置了一个用户来部署服务,将部署文件更新到原有目录下,结果nginx访问403 原因:没有配置文件的读写权限,默认不可读写,nginx无法访问到文…...
华为OD机试 - 数字排列 - 深度优先搜索dfs算法(Python/JS/C/C++ 2024 C卷 200分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…...
Scrapy爬取heima论坛所有页面内容并保存到数据库中
前期准备: Scrapy入门_win10安装scrapy-CSDN博客 新建 Scrapy项目 scrapy startproject mySpider03 # 项目名为mySpider03 进入到spiders目录 cd mySpider03/mySpider03/spiders 创建爬虫 scrapy genspider heima bbs.itheima.com # 爬虫名为heima &#…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
