《一本书讲透 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 &#…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
