《一本书讲透 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 &#…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...