项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?

r660926
发布于 2022-4-25 16:01
浏览
0收藏

1、实战项目


将唐诗三百首写入Elasticsearch会发生什么?

 

2、项目说明


此项目是根据实战项目浓缩的一个小项目,几乎涵盖之前讲解的所有知识点。

 

通过这个项目的实战,能让你串联起之前的知识点应用于实战,并建立起需求分析、整体设计、数据建模、ingest管道使用、检索/聚合选型、kibana可视化分析等的全局认知。

 

3、 需求


数据来源:https://github.com/xuchunyang/300

 

注意数据源bug: 第1753行种的"id":178 需要手动改成  "id": 252。

 

项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区

检索分析DSL实战

 

 •  1)飞花令环节:包含铭 毅 天下(分别包含)诗句有哪些?各有多少首?


 •  2)李白的诗有几首?按照诗长短排序,由短到长


 •  3)取TOP10最长、最短的诗的作者列表


聚合分析实战及可视化实战

 

 •  1)三百首谁的作品最多?取TOP10排行


 •  2)五言绝句和七言律诗占比,以及对应作者占比统计


 •  3)同名诗排行统计


 •  4)三百首诗分词形成什么样的词云


4、 需求解读与设计

项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区

根据需求梳理出如下的逻辑架构,实际开发中要谨记如下的数据流向。

 

项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区

对于Elasticsearch的数据建模的核心是Mapping的构建。

 

对于原始json数据:

 项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
由于涉及中文分词,选型分词器很重要。

 

这里依然推荐:选择ik分词。

 

ik词典的选择建议:自带词典不完备,网上搜索互联网的一些常用语词典、行业词典如(诗词相关词典)作为补充完善。

 

项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
5、项目实战


项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
5.5.1 飞花令环节:包含铭 毅 天下(分别包含)诗句有哪些?各有多少首?
项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
实践表明:

 

 •  铭:0首
 •  毅:1首
 •  天下:114 首


不禁感叹:唐诗先贤们也是心怀天下,忧国忧民啊!

 

5.5.2 李白的诗有几首?按照诗长短排序,由短到长
 项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区

唐诗三百首中,李白共33首诗(仅次于杜甫39首),最长的是“蜀道难”,共:353 个字符。

 

李白、杜甫不愧为:诗仙和诗圣啊!也都是高产诗人!

 

5.5.3 取TOP10最长、最短的诗的作者列表
 项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
最长的诗:白居易-长恨歌-960个字符。

 

最短的诗:王维-鹿柴- 24个字符(并列的非常多)。

 

项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区
项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区

项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?-鸿蒙开发者社区

6、小结


结合唐诗300首的业务场景,结合本小项目的需求、设计、实现三个阶段,建立起对Elasticsearch、kibana核心知识点的全局认识。

 

核心目的:通过小项目练手,促进公司实际项目能力、产品研发能力的提升

 

思考:本文词云效果不好,为什么?

分类
收藏
回复
举报
回复
    相关推荐