图片

在我以前的文章(这里是第一[1]篇和第二篇[2])中,我展示了ElasticSearch作为电子商务中的全文搜索引擎的使用,一些高级配置的设置和使用以及products包含所有内容的索引的创建保存的产品。

出于演示目的,我们使用Bogus库来动态生成产品,并使用NEST库来处理ElasticSearch索引上的CRUD。

我们的模型产品类定义为:

public class Product
{public int Id { get; set; }public string Ean { get; set; }public string Name { get; set; }public string Description { get; set; }public Brand Brand { get; set; }public Category Category { get; set; }public Store Store { get; set; }public decimal Price { get; set; }public string Currency { get; set; }public int Quantity { get; set; }public float Rating { get; set; }public DateTime ReleaseDate { get; set; }public string Image { get; set; }public List<review> Reviews { get; set; }
}

其中品牌,类别,商店,评论和用户类别分别是:

public class Brand
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}public class Category
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}public class Store
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}public class Review
{public int Id { get; set; }public short Rating { get; set; }public string Description { get; set; }public User User { get; set; }
}public class User
{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string IPAddress { get; set; }public GeoIp GeoIp { get; set; }
}

GeoIP是NEST库中用于地理数据的类。下一步是创建一个可以显示产品的仪表板,并对产品进行所进行的研究以详细介绍或减少高级统计信息。

我们决定使用Kibana[3],而不是开发耗时费力的定制解决方案。它处理作为ElasticSearch堆栈一部分的前端应用程序,使我们可以查看数据并搜索所有索引数据并跟踪查询的负载。

Kibana还可以用于监视,管理和保护同一堆栈。

图片

要安装和配置它,只需转到页面https://www.elastic.co/downloads/kibana。在这里,我们可以找到所有平台的安装程序,然后下载适合我们需求的安装程序。

一旦下载并解压缩到给定的文件夹(在我们的示例中为C:\ ElasticSearch \ Kibana)中,我们打开config / kibana.yml文件,并将elasticsearch.hosts参数设置为指向我们的ElasticSearch实例(对于本地版本http://本地主机:9200):

elasticsearch.hosts: ["http://localhost:9200"]

让我们运行bin / kibana.bat并从浏览器页面打开http:// localhost:5601。我们得到的页面如下:

图片

Kibana界面分为几个部分。

在开源版本中,包括:发现(数据交互式探索),可视化(图形,表格,标签中的数据分析),仪表板(复杂的数据视图),画布(文档创建),地图(地理参考数据分析),开发工具(处理和分析查询的工具)和管理(索引和群集管理)。

我们还可以安装X-Pack插件以使用“图形”和“监视”部分。

让我们转到管理-> Elasticsearch->索引管理部分,以验证是否已正确检测到Elasticsearch索引:

图片

我们可以找到products索引并验证其映射和与数据模型的匹配:

图片

要创建一个Kibana索引,只需转到“管理”部分->“ Kibana->索引模式”,然后输入文本,即可将新索引链接到一个或多个ElasticSearch索引。

在本例中,我们键入products,以创建我们的Kibana索引。

图片

创建索引后,可以在“发现”部分中按日期或一个或多个字段过滤数据:

图片

使用搜索栏,我们可以使用KQL语言(Kibana查询语言)在产品之间进行查询,这使您可以使用自动完成功能轻松查询。例如,我们可以输入:

category.name : Games AND rating > 0.5

了解游戏类别中所有评分高于0.5的产品。

您可以选择一些字段并将其添加到“选定的字段”中,以便获得自定义结果视图。

添加索引并验证查询的正确性后,我们可以创建新的数据视图。

可视化由各种类型的图形(条形图,蛋糕),表格,指标,指标和标签云组成。当然,它们支持数据聚合。

在“可视化”部分,我们可以使用图形来创建新的数据可视化。

图片

出于统计目的,我们使用简单的垂直条形图创建了一些按类别,品牌分组的产品图。我们得到的结果类似于:

图片

您也可以向此视图添加过滤器。例如,在我们的情况下,我们只想查看商店中可用的产品,因此我们quantity > 0在过滤器栏中键入。然后单击“保存”按钮以保存我们的视图。

另一个有用的可视化是按价格范围的产品视图。在这种情况下,我们在价格字段中定义存储桶,并将其用于饼图。让我们按以下价格范围划分产品:

0 50

50 100

100 200

200 400

400 800

800

我们可以得到类似于以下结果:

图片

我们还可以添加一些子桶以具有聚合数据和嵌套的可视化效果。

在“地图”部分中,我们可以使用“弹性地图”(多层地图)显示地理参考数据。

我们可以单击“添加”层,通过选择包含地理参考信息的字段(在我们的示例中geoIp.location)将数据添加到索引中。

图片

创建了所需的所有视图后,我们将继续执行第一个仪表板。最后一个是一组视图,搜索和地图,通常实时更新,从而提供有关索引数据的高级信息。

在“仪表板”部分,让我们单击“创建新仪表板”,然后单击“添加”并选择创建的视图:

图片

让我们全部添加它们并将它们排列在仪表板布局上。我们可以获得这样的结果:

图片

仪表板可以通过KQL查询进行过滤,并且视图始终是动态的。我们还可以通过iframe在Web应用程序中共享和集成它们。如果点击共享->复制iframe代码,我们将获得这样的链接:

<iframe src="http://localhost:5601/app/kibana#/dashboard?embed=true" height="600" width="800"></iframe>

Kibana的另一个有趣功能是Canvas。它使用一种查看和呈现数据的工具来显示实时数据,并将其与颜色,图像和文本结合在一起以创建动态视图。

在“画布”部分中,让我们单击“创建工作台”,然后开始添加指标。在我们的案例中,我们为产品和可用商品,品牌和类别设置参数,为品牌-类别对设置饼图,并按品牌划分商品平均价格。

图片

创建后,工作台可以共享为JSON文件或下载为PDF报告。

其他有趣的功能是:

•机器学习:允许您检查数据中的异常并使用规范化数据创建新索引;•图形:使您可以查看索引对象之间的连接;•日志:用于查看和管理我们应用程序的日志数据,并可能实时检查异常情况:•REST API:允许您通过HTTP与Kibana引擎进行通信并管理我们的仪表板;•APM:允许您实时监视服务,应用程序和相关性能;•开发工具:一组用于与数据进行交互的工具,包括控制台和搜索分析器。

结论

在本文中,我们向您展示了如何使用Kibana来处理,管理和从ElasticSearch引擎中获得最佳收益。

希望我们引起您对该主题的兴趣。

此处提供了带有本文中使用的代码的示例项目:https[4] : //github.com/enricobencivenga/ProductElasticSearchAdvanced[5]

References

[1] 第一: https://www.blexin.com/en-US/Article/Blog/How-to-integrate-ElasticSearch-in-ASPNET-Core-70
[2] 第二篇: https://www.blexin.com/en-US/Article/Blog/ElasticSearch-advanced-features-80
[3] Kibana: https://www.elastic.co/kibana
[4] https: https://github.com/enricobencivenga/ProductElasticSearchAdvanced
[5] //github.com/enricobencivenga/ProductElasticSearchAdvanced: https://github.com/enricobencivenga/ProductElasticSearchAdvanced

Asp.NET Core 如何使用ElasticSearch和Kibana创建仪表板相关推荐

  1. ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application

    今天看了Scott关于ASP.NET Core的介绍视频,发现用命令行一步一步新建项目.添加Package.Restore.Build.Run 执行的实现方式,更让容易让我们了解.NET Core的运 ...

  2. asp.net core 系列 20 EF基于数据模型创建数据库

    一.概述 本章使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序.使用迁移(migrations)基于数据模型创建数据库,是一种cod ...

  3. 在 asp.net core \ vs2015 update2 情况况下创建 asp.net core web application 的问题

    这段期间, 想要做一些关于dashboard的东西,更为直接地观察数据. 所以找了很多关于做chart的工具, 有需要的可以点击链接,这里是我找到的15个最好的javascript chart lib ...

  4. Logging with ElasticSearch, Kibana, ASP.NET Core and Docker

    " 好久不见,前两周经历了人生第一次"伪牛市",基金和股市大起大落,更加坚信"你永远赚不到超出你认知范围之外的钱,除非靠着运气",老韭菜诚不欺我也. ...

  5. 在 Azure 上部署 Asp.NET Core Web App

    在云计算大行其道的时代,当你要部署一个网站时第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core的网站呢?Azure 的 Web App ...

  6. ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用

    原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...

  7. ASP.NET Core教程【一】关于Razor Page的知识

    关键文件和目录结构 按照asp.net core WEB应用程序向导,创建一个工程之后 你会发现如下几个目录和文件 wwwroot:放置网站的静态文件的目录 Pages:放置razor页面的目录 ap ...

  8. asp.netcore oracle,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...

    Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...

  9. ASP.Net Core WebApi几种版本控制对比

    ASP.Net Core WebApi几种版本控制对比 原文:ASP.Net Core WebApi几种版本控制对比 一.版本控制的好处: (1)有助于及时推出功能, 而不会破坏现有系统. (2)它还 ...

最新文章

  1. 深度学习会议论文不好找?这个ConfTube网站全都有
  2. raid5数据恢复成功案例
  3. 连接统计学、机器学习与自动推理的新兴交叉领域——因果科学读书会再起航...
  4. MySql中启用InnoDB数据引擎的方法
  5. Spark学习之Spark RDD算子
  6. 线下讲座 | 机器翻译大牛Kevin Knight: Translation and Ciphers
  7. 解题报告——Python编程:从入门到实践_动手试一试_参考答案(第四章)
  8. SPL - 写着简单跑得又快的数据库语言
  9. 光学模拟 Android,基于Android平台的光学字符识别应用的设计与实现
  10. 国计算机学会聘为全国青少年信,中国计算机学会将继续开展NOI相关活动,暂未作出重新申报的决议...
  11. LeetCode 688. “马”在棋盘上的概率(DP)
  12. 重拾Javascript(四) 运动 图片的淡入淡出
  13. poj 1236 Network of Schools (强连通分支缩点)
  14. 西瓜书+实战+吴恩达机器学习(一)机器学习基础(数据集划分、分类回归评估指标)
  15. 我的 Visual Studio . NET 配置
  16. linux系统监控、诊断工具摘录top IO wait lsof
  17. CentOS虚拟机挂载U盘
  18. 【ArcGIS|空间分析|网络分析】2 创建多模式网络数据集
  19. 2021年3月计算机语言排名,2021年3月编程语言排行榜:TOIBE将迎来重大改变,SQL如愿挤进前十...
  20. outlook搜索栏不见了_回忆了一下Foxmail内置的全文搜索那点事,于是有了此文

热门文章

  1. java 接口编程_JAVA面向接口编程
  2. b样条曲面绘制 opengl_CAD制图软件中如何利用EXCEL输入坐标绘制曲线?
  3. 使用生成器创建新的迭代模式
  4. webpack二(以webpack4.x起步)
  5. 【Android Studio】查看源码时提示“throw new RuntimeException(Stub!)”
  6. 信息安全系统设计基础第七周学习总结
  7. iio Engine logoHTML5 应用框架 iio Engine
  8. PHP优于Node.js的五大理由
  9. SmartPart事件
  10. 如何使用ARM创建Teams Bot所需要的Azure资源