你可以的,加油

社区日报 第1619期 (2023-04-26)

1.Elasticsearch:搜索及索引分析器
https://blog.csdn.net/UbuntuTo ... 34582
2.Elasticsearch:了解和解决文档更新后 Elasticsearch 分数的变化
https://blog.csdn.net/UbuntuTo ... 13637
3.ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据
https://blog.csdn.net/UbuntuTo ... 79557

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
继续阅读 »
1.Elasticsearch:搜索及索引分析器
https://blog.csdn.net/UbuntuTo ... 34582
2.Elasticsearch:了解和解决文档更新后 Elasticsearch 分数的变化
https://blog.csdn.net/UbuntuTo ... 13637
3.ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据
https://blog.csdn.net/UbuntuTo ... 79557

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »

社区日报 第1618期 (2023-04-25)


OpenShift搭建Elasticsearch完全手册(需要梯子)
1. https://medium.com/%40vaibhavv ... 93598
ES 基础概念简介(需要梯子)
2. https://medium.com/%40marateek ... 7d276
用elastic全家构建安全审计仪表盘(需要梯子)
3. https://medium.com/%40samiul00 ... 029ac
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
 
继续阅读 »

OpenShift搭建Elasticsearch完全手册(需要梯子)
1. https://medium.com/%40vaibhavv ... 93598
ES 基础概念简介(需要梯子)
2. https://medium.com/%40marateek ... 7d276
用elastic全家构建安全审计仪表盘(需要梯子)
3. https://medium.com/%40samiul00 ... 029ac
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
  收起阅读 »

社区日报 第1617期 (2023-04-24)

1. Elasticsearch 聚合分页
   https://blog.csdn.net/laoyang3 ... 12946
2. kibana权限配置
   https://help.aliyun.com/docume ... .html
3. Elasticsearch:如何部署 NLP:命名实体识别 (NER) 示例
   https://blog.csdn.net/UbuntuTo ... 77711
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
继续阅读 »
1. Elasticsearch 聚合分页
   https://blog.csdn.net/laoyang3 ... 12946
2. kibana权限配置
   https://help.aliyun.com/docume ... .html
3. Elasticsearch:如何部署 NLP:命名实体识别 (NER) 示例
   https://blog.csdn.net/UbuntuTo ... 77711
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »

INFINI 产品更新|Console v1.0 版本正式发布

INFINI Labs 产品更新发布

本次 INFINI Labs 产品更新主要包括 Gateway v1.12.1、Console v1.0.0,其中 Console v1.0.0 是一个重要里程碑版本,该版本做了很多UI交互优化;集成了Github SSO 单点登录功能;新增了数据迁移功能,支持跨搜索引擎、跨版本的数据迁移;新增了数据看板,支持自定义可视化报表;以及修复已知Bug等。值得一提的是,Console 非常轻量级,安装包只有16MB,架构简洁,除了使用 Elasticsearch 当作数据存储外无任何外部依赖,包含监控、告警、安全、可视化分析等日常管理功能,欢迎下载使用。在线体验DEMO:https://play.infinilabs.com:64443,用户名密码 readonly/readonly。

INFINI Gateway v1.12.1

极限网关本次更新如下:

Bug fix

  • Elasticsearch 修复偶现连接断开的问题。
  • Elasticsearch 修复连接超时未返回错误信息的问题。

更多 Gateway 更新可参考【Gateway 版本历史】。

INFINI Console v1.0.0

Console 本次主要更新如下:

1、集成 Github 单点登录,方便快速登录,减少用户名和密码登录经常忘记带来的烦恼。详情查看教程

1682236995658.jpg

2、新增了工作台界面,作为 Console 登录后的入口页面,可以快速预览整个系统的集群资源概要信息、集群动态、常用功能快捷入口等。

640.png

3、新增了数据迁移功能,支持 Elasticsearch、Opensearch、Easysearch 等搜索引擎的所有版本之间相互迁移。需要搭配 最新版本极限网关(INFINI Gateway) 使用,详情查看教程

640_(1).png

4、新增了数据看板功能,支持多标签页,支持折线图、柱状图、饼图等图表,支持用户自定义可视化数据报表,详情查看教程

640_(2).png

5、数据探索 Discover 添加搜索关键词高亮功能。

640_(3).png

除了以上主要功能外还做了很多优化和Bug fix,如下:

Features

  • 数据迁移添加初始化索引 settings, mappings 可选步骤
  • 数据迁移添加删除功能

Improvements

  • 添加 Opening scroll context 监控指标
  • 数据迁移分区设置优化
  • 优化数据迁移错误日志和异常情况处理
  • 迁移后目标集群和源集群文档数量不匹配,标记迁移任务为失败状态

Bug fix

  • 修复新注册集群状态不同步更新的问题
  • 修复低版本 ES 多 type 分区查询时没有根据 doctype 过滤的问题
  • 修复特殊情况下迁移任务没有被释放的问题
  • 修复迁移任务结束,队列磁盘文件未释放的问题
  • 修复bulk写入失败导致迁移任务卡住的问题

更多 Console 更新可参考【Console 版本历史】。

期待反馈

欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。

您还可以通过邮件联系我们:hello@infini.ltd

或者拨打我们的热线电话:(+86) 400-139-9200

也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群讨论,或者扫码加入我们的知识星球一起学习交流。

联系我们

最后祝大家周末愉快!

关于极限科技(INFINI Labs)

关于极限科技

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

继续阅读 »

INFINI Labs 产品更新发布

本次 INFINI Labs 产品更新主要包括 Gateway v1.12.1、Console v1.0.0,其中 Console v1.0.0 是一个重要里程碑版本,该版本做了很多UI交互优化;集成了Github SSO 单点登录功能;新增了数据迁移功能,支持跨搜索引擎、跨版本的数据迁移;新增了数据看板,支持自定义可视化报表;以及修复已知Bug等。值得一提的是,Console 非常轻量级,安装包只有16MB,架构简洁,除了使用 Elasticsearch 当作数据存储外无任何外部依赖,包含监控、告警、安全、可视化分析等日常管理功能,欢迎下载使用。在线体验DEMO:https://play.infinilabs.com:64443,用户名密码 readonly/readonly。

INFINI Gateway v1.12.1

极限网关本次更新如下:

Bug fix

  • Elasticsearch 修复偶现连接断开的问题。
  • Elasticsearch 修复连接超时未返回错误信息的问题。

更多 Gateway 更新可参考【Gateway 版本历史】。

INFINI Console v1.0.0

Console 本次主要更新如下:

1、集成 Github 单点登录,方便快速登录,减少用户名和密码登录经常忘记带来的烦恼。详情查看教程

1682236995658.jpg

2、新增了工作台界面,作为 Console 登录后的入口页面,可以快速预览整个系统的集群资源概要信息、集群动态、常用功能快捷入口等。

640.png

3、新增了数据迁移功能,支持 Elasticsearch、Opensearch、Easysearch 等搜索引擎的所有版本之间相互迁移。需要搭配 最新版本极限网关(INFINI Gateway) 使用,详情查看教程

640_(1).png

4、新增了数据看板功能,支持多标签页,支持折线图、柱状图、饼图等图表,支持用户自定义可视化数据报表,详情查看教程

640_(2).png

5、数据探索 Discover 添加搜索关键词高亮功能。

640_(3).png

除了以上主要功能外还做了很多优化和Bug fix,如下:

Features

  • 数据迁移添加初始化索引 settings, mappings 可选步骤
  • 数据迁移添加删除功能

Improvements

  • 添加 Opening scroll context 监控指标
  • 数据迁移分区设置优化
  • 优化数据迁移错误日志和异常情况处理
  • 迁移后目标集群和源集群文档数量不匹配,标记迁移任务为失败状态

Bug fix

  • 修复新注册集群状态不同步更新的问题
  • 修复低版本 ES 多 type 分区查询时没有根据 doctype 过滤的问题
  • 修复特殊情况下迁移任务没有被释放的问题
  • 修复迁移任务结束,队列磁盘文件未释放的问题
  • 修复bulk写入失败导致迁移任务卡住的问题

更多 Console 更新可参考【Console 版本历史】。

期待反馈

欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。

您还可以通过邮件联系我们:hello@infini.ltd

或者拨打我们的热线电话:(+86) 400-139-9200

也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群讨论,或者扫码加入我们的知识星球一起学习交流。

联系我们

最后祝大家周末愉快!

关于极限科技(INFINI Labs)

关于极限科技

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

收起阅读 »

社区日报 第1616期 (2023-04-21)


1、ChatGPT + Elasticsearch:开源搜索与 AI 技术的完美结合
https://www.elastic.co/cn/blog ... -data

2、Elasticsearch权威指南之深入查询
https://www.elastic.co/guide/c ... .html

3、Elasticsearch 基础概念全新解读
https://blog.devgenius.io/elas ... bfb3e

4、Elasticsearch数据导入方法大全
https://www.elastic.co/cn/blog ... lizer



编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
继续阅读 »

1、ChatGPT + Elasticsearch:开源搜索与 AI 技术的完美结合
https://www.elastic.co/cn/blog ... -data

2、Elasticsearch权威指南之深入查询
https://www.elastic.co/guide/c ... .html

3、Elasticsearch 基础概念全新解读
https://blog.devgenius.io/elas ... bfb3e

4、Elasticsearch数据导入方法大全
https://www.elastic.co/cn/blog ... lizer



编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »

社区日报 第1615期 (2023-04-20)

1.Elasticsearch 中的排序方法(需要梯子)
https://luis-sena.medium.com/b ... 3f6ed
2.理解 Elasticsearch 中的相关性
https://dev.to/lisahjung/begin ... -29n6
3.理解 Elasticsearch 中的 mapping
https://dev.to/lisahjung/begin ... -3646

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
继续阅读 »
1.Elasticsearch 中的排序方法(需要梯子)
https://luis-sena.medium.com/b ... 3f6ed
2.理解 Elasticsearch 中的相关性
https://dev.to/lisahjung/begin ... -29n6
3.理解 Elasticsearch 中的 mapping
https://dev.to/lisahjung/begin ... -3646

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »

社区日报 第1614期 (2023-04-19)

1.Elasticsearch:按类型删除分词
https://blog.csdn.net/UbuntuTo ... 86895
2.Observability:使用 OpenTelemetry 和 Elastic 监控 OpenAI API 和 GPT 模型
https://blog.csdn.net/UbuntuTo ... 91840
3.使用tweets情感分词器小教程(需要梯子)
https://blog.devgenius.io/sent ... 76baf

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
 
继续阅读 »
1.Elasticsearch:按类型删除分词
https://blog.csdn.net/UbuntuTo ... 86895
2.Observability:使用 OpenTelemetry 和 Elastic 监控 OpenAI API 和 GPT 模型
https://blog.csdn.net/UbuntuTo ... 91840
3.使用tweets情感分词器小教程(需要梯子)
https://blog.devgenius.io/sent ... 76baf

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
  收起阅读 »

社区日报 第1612期 (2023-04-17)

1. Elasticsearch 数据迁移方案
   https://www.modb.pro/db/561895
2. Elasticsearch 8.X 版本升级指南
   https://blog.51cto.com/elasticsearch/5768409
3. 滴滴 Elasticsearch 集群跨版本升级与平台重构之路
   https://zhuanlan.zhihu.com/p/436034537
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
继续阅读 »
1. Elasticsearch 数据迁移方案
   https://www.modb.pro/db/561895
2. Elasticsearch 8.X 版本升级指南
   https://blog.51cto.com/elasticsearch/5768409
3. 滴滴 Elasticsearch 集群跨版本升级与平台重构之路
   https://zhuanlan.zhihu.com/p/436034537
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »

社区日报 第1613期 (2023-04-18)



1.ES 助力开源软件漏洞挖掘(需要梯子)
https://medium.com/checkmarx-s ... 58aab


2. AWS版ES的降本增效复盘(需要梯子)
https://ramchandra-vadranam.me ... 2ce37


3. 用golang配合ES和rabbitmq弄的全文搜索系统,很强(需要梯子)
https://blog.devops.dev/go-ela ... bae51


编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
继续阅读 »


1.ES 助力开源软件漏洞挖掘(需要梯子)
https://medium.com/checkmarx-s ... 58aab


2. AWS版ES的降本增效复盘(需要梯子)
https://ramchandra-vadranam.me ... 2ce37


3. 用golang配合ES和rabbitmq弄的全文搜索系统,很强(需要梯子)
https://blog.devops.dev/go-ela ... bae51


编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »

社区日报 第1611期 (2023-04-13)

1.如何处理 Elasticsearch 上 unassigned 的分片
https://www.datadoghq.com/blog ... hards
2.Elasticsearch 奔溃事故复盘(需要梯子)
https://medium.com/trendyol-te ... 1d34d
3.Elasticsearch as a service — AWS vs Azure vs Google(需要梯子)
https://medium.com/%40demianch ... 55993

编辑:Se7en   
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
继续阅读 »
1.如何处理 Elasticsearch 上 unassigned 的分片
https://www.datadoghq.com/blog ... hards
2.Elasticsearch 奔溃事故复盘(需要梯子)
https://medium.com/trendyol-te ... 1d34d
3.Elasticsearch as a service — AWS vs Azure vs Google(需要梯子)
https://medium.com/%40demianch ... 55993

编辑:Se7en   
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »

社区日报 第1610期 (2023-04-12)

1.Elastic 中国开发者大会2023最新干货——Elasticsearch 7、8 新功能一网打尽
https://mp.weixin.qq.com/s/jUVl5yv7lcDBdS4RuL3Ukw
2.ES 工坊笔记:script处理第四部分(需要梯子)
https://towardsdatascience.com ... eaff4
3.【ES三周年】Elasticsearch安全配置详解
https://cloud.tencent.com/deve ... 34567

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
继续阅读 »
1.Elastic 中国开发者大会2023最新干货——Elasticsearch 7、8 新功能一网打尽
https://mp.weixin.qq.com/s/jUVl5yv7lcDBdS4RuL3Ukw
2.ES 工坊笔记:script处理第四部分(需要梯子)
https://towardsdatascience.com ... eaff4
3.【ES三周年】Elasticsearch安全配置详解
https://cloud.tencent.com/deve ... 34567

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »

社区日报 第1609期 (2023-04-11)


1. 如何用ES过滤数据(需要梯子)
https://medium.com/hepsiburada ... a1ae3
2. 如何使用 fluent-bit rewrite-tag 插件配合 Kubernetes 插件进行日志解析(需要梯子)
https://ahmedelfakharany.com/h ... 5ce9e
3. 用kafka、ksql和es搭建实时数据分析系统(需要梯子)
https://medium.com/%40stefenta ... 32d78
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
 
继续阅读 »

1. 如何用ES过滤数据(需要梯子)
https://medium.com/hepsiburada ... a1ae3
2. 如何使用 fluent-bit rewrite-tag 插件配合 Kubernetes 插件进行日志解析(需要梯子)
https://ahmedelfakharany.com/h ... 5ce9e
3. 用kafka、ksql和es搭建实时数据分析系统(需要梯子)
https://medium.com/%40stefenta ... 32d78
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
  收起阅读 »

社区日报 第1608期 (2023-04-10)

1. Elasticsearch:2023中国开发者大会
   http://www.360doc.com/content/ ... shtml
2. Elasticsearch:使用 Elastic 机器学习进行 data frame 分析
   https://blog.csdn.net/UbuntuTo ... 90329
3. Elasticsearch在机器学习上的应用
   https://www.modb.pro/db/69770
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
继续阅读 »
1. Elasticsearch:2023中国开发者大会
   http://www.360doc.com/content/ ... shtml
2. Elasticsearch:使用 Elastic 机器学习进行 data frame 分析
   https://blog.csdn.net/UbuntuTo ... 90329
3. Elasticsearch在机器学习上的应用
   https://www.modb.pro/db/69770
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »

Web Scraper + Elasticsearch + Kibana + SearchKit 打造的豆瓣电影top250 搜索演示系统

Web Scraper + Elasticsearch + Kibana + SearchKit 打造的豆瓣电影top250 搜索演示系统

作者:小森同学

声明:电影数据来源于“豆瓣电影”,如有侵权,请联系删除

1.png

2.png

Web Scraper

{
    "_id": "top250",
    "startUrl": ["https://movie.douban.com/top250?start=[0-225:25]&filter="],
    "selectors": [{
        "id": "container",
        "multiple": true,
        "parentSelectors": ["_root"],
        "selector": ".grid_view li",
        "type": "SelectorElement"
    }, {
        "id": "name",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "span.title:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "number",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "em",
        "type": "SelectorText"
    }, {
        "id": "score",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "span.rating_num",
        "type": "SelectorText"
    }, {
        "id": "review",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "span.inq",
        "type": "SelectorText"
    }, {
        "id": "year",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "\\d{4}",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "tour_guide",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "^导演: \\S*",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "type",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "[^/]+$",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "area",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "[^\\/]+(?=\\/[^\\/]*$)",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "detail_link",
        "multiple": false,
        "parentSelectors": ["container"],
        "selector": ".hd a",
        "type": "SelectorLink"
    }, {
        "id": "director",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "",
        "selector": "span:nth-of-type(1) .attrs a",
        "type": "SelectorText"
    }, {
        "id": "screenwriter",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=编剧: )[\\u4e00-\\u9fa5A-Za-z0-9/()\\·\\s]+(?=主演)",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "film_length",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "\\d+",
        "selector": "span[property='v:runtime']",
        "type": "SelectorText"
    }, {
        "id": "IMDb",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=[IMDb:\\s+])\\S*(?=\\d*$)",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "language",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=语言: )\\S+",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "alias",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=又名: )[\\u4e00-\\u9fa5A-Za-z0-9/()\\s]+(?=IMDb)",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "pic",
        "multiple": false,
        "parentSelectors": ["container"],
        "selector": "img",
        "type": "SelectorImage"
    }]
}

elasticsearch

{
    "mappings": {
      "properties": {
        "IMDb": {
          "type": "keyword",
          "copy_to": [
            "all"
          ]
        },
        "alias": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "all": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "area": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "director": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "film_length": {
          "type": "long"
        },
        "id": {
          "type": "keyword"
        },
        "language": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "link": {
          "type": "keyword"
        },
        "name": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "number": {
          "type": "long"
        },
        "photo": {
          "type": "keyword"
        },
        "review": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "score": {
          "type": "double"
        },
        "screenwriter": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "type": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "year": {
          "type": "long"
        }
      }
    }
  }

kibana

需要使用pipeline对索引字段进行处理,如对type 通过空格进行分割为数组等,可以参照官方文档或其他博客。

制作仪表板省略, 请自行搜索

SearchKit

参考 https://github.com/searchkit/searchkit-starter-app

继续阅读 »

Web Scraper + Elasticsearch + Kibana + SearchKit 打造的豆瓣电影top250 搜索演示系统

作者:小森同学

声明:电影数据来源于“豆瓣电影”,如有侵权,请联系删除

1.png

2.png

Web Scraper

{
    "_id": "top250",
    "startUrl": ["https://movie.douban.com/top250?start=[0-225:25]&filter="],
    "selectors": [{
        "id": "container",
        "multiple": true,
        "parentSelectors": ["_root"],
        "selector": ".grid_view li",
        "type": "SelectorElement"
    }, {
        "id": "name",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "span.title:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "number",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "em",
        "type": "SelectorText"
    }, {
        "id": "score",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "span.rating_num",
        "type": "SelectorText"
    }, {
        "id": "review",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "",
        "selector": "span.inq",
        "type": "SelectorText"
    }, {
        "id": "year",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "\\d{4}",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "tour_guide",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "^导演: \\S*",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "type",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "[^/]+$",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "area",
        "multiple": false,
        "parentSelectors": ["container"],
        "regex": "[^\\/]+(?=\\/[^\\/]*$)",
        "selector": "p:nth-of-type(1)",
        "type": "SelectorText"
    }, {
        "id": "detail_link",
        "multiple": false,
        "parentSelectors": ["container"],
        "selector": ".hd a",
        "type": "SelectorLink"
    }, {
        "id": "director",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "",
        "selector": "span:nth-of-type(1) .attrs a",
        "type": "SelectorText"
    }, {
        "id": "screenwriter",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=编剧: )[\\u4e00-\\u9fa5A-Za-z0-9/()\\·\\s]+(?=主演)",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "film_length",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "\\d+",
        "selector": "span[property='v:runtime']",
        "type": "SelectorText"
    }, {
        "id": "IMDb",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=[IMDb:\\s+])\\S*(?=\\d*$)",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "language",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=语言: )\\S+",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "alias",
        "multiple": false,
        "parentSelectors": ["detail_link"],
        "regex": "(?<=又名: )[\\u4e00-\\u9fa5A-Za-z0-9/()\\s]+(?=IMDb)",
        "selector": "div#info",
        "type": "SelectorText"
    }, {
        "id": "pic",
        "multiple": false,
        "parentSelectors": ["container"],
        "selector": "img",
        "type": "SelectorImage"
    }]
}

elasticsearch

{
    "mappings": {
      "properties": {
        "IMDb": {
          "type": "keyword",
          "copy_to": [
            "all"
          ]
        },
        "alias": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "all": {
          "type": "text",
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "area": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "director": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "film_length": {
          "type": "long"
        },
        "id": {
          "type": "keyword"
        },
        "language": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "link": {
          "type": "keyword"
        },
        "name": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "number": {
          "type": "long"
        },
        "photo": {
          "type": "keyword"
        },
        "review": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "score": {
          "type": "double"
        },
        "screenwriter": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "type": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          },
          "copy_to": [
            "all"
          ],
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_smart"
        },
        "year": {
          "type": "long"
        }
      }
    }
  }

kibana

需要使用pipeline对索引字段进行处理,如对type 通过空格进行分割为数组等,可以参照官方文档或其他博客。

制作仪表板省略, 请自行搜索

SearchKit

参考 https://github.com/searchkit/searchkit-starter-app

收起阅读 »

社区日报 第1607期 (2023-04-07)


1、Elasticsearch 命名实体识别实现
https://www.elastic.co/cn/blog ... ample

2、使用 Elasticsearch 健康 API 诊断集群健康状况
https://www.elastic.co/cn/blog ... h-api

3、使用 EFK 技术栈聚合日志并进行分析实战
https://www.upnxtblog.com/inde ... stack

编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
继续阅读 »

1、Elasticsearch 命名实体识别实现
https://www.elastic.co/cn/blog ... ample

2、使用 Elasticsearch 健康 API 诊断集群健康状况
https://www.elastic.co/cn/blog ... h-api

3、使用 EFK 技术栈聚合日志并进行分析实战
https://www.upnxtblog.com/inde ... stack

编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »