在我们的 Web 应用程序中,我们使用 SQL Server 中的非规范化数据集市来处理基于地理位置的用户项目内容。
用户有 1..*项目,1..*地理区域。内容与 UserID、Project ID、地理区域的文本值、标题和说明(均已编制索引的自由文本搜索)一起存储(在数据集市中):
UserID, ProjectID, Geo, Title, Description, Timestamp
现在想要将其转移到ElasticSearch中,什么是好的数据建模方法?
简单地说,对于数据集市,我正在考虑序列化数据对象(当前使用.Net和EntityFramework)以提供JSON表示并将其填充到ES中。这是一个好方法(也只需要最少的返工)?
关于对整个应用程序进行建模,我见过一些示例,其中 ES 类型将按用户进行组织,因此模型可能如下所示:
User
User ID, Name, etc...
ProfileSettings
Setting1, Setting2, etc...
Geographies
GeoID, GeoName
Projects
ProjectID, ProjectName
ProjectContent
Key (UserID:ProjectID:ProjectContentID), GeoName, Title, Description, Timestamp
所以这看起来整个 Web 应用程序可以从一个索引/类型运行。有点吓人,不是吗?
我想将来使用 Kibana 和其他分析工具,并且已经阅读了有关数据建模限制的信息,例如不使用父/子类型。
对于这样的东西,一个好的ElasticSearch数据模型会是什么样子的?
另一种提问方式是,如何使用ElasticSearch对实时Web应用程序进行建模,和/或将用户配置和配置文件存储在单独的RDBMS中会更好吗?
谢谢。
如果不了解业务和报告要求,这些问题总是很难回答。但以下是我从与ES的短暂经历中学到的一些准则:
1)您不必将它们全部放在一个索引中,因此“user”和“project”的单独索引可能效果最好。由于 ES 默认为所有字段编制索引,因此按用户搜索项目索引会很快。Kibana 可以搜索多个索引。
2)当时的普遍观点是保持索引尽可能平坦,因此同样的事情也适用于为用户配置文件设置使用单独的索引。
3)除了序列化和填充之外,创建映射可能是有利的。
关于用户配置和配置文件,我认为没有任何令人信服的理由使用 RDBMS。它们将由用户 ID 键控,没有联接要求,不需要 ACID 一致性和并发模型。NOSQL 解决方案将为您提供这些用例所需的模式灵活性。
问题内容: 我有一个Windows应用程序,我想对其进行容器化。它是Windows桌面应用程序(不是Web应用程序)。我进行了一些搜索,发现关于容器化桌面应用程序的知识很少。我要容器化的应用程序在WindowsServerCore上运行良好。我的机器上有Windowsservercore映像。 我想知道如何进行容器化。有任何文档或有用的视频吗?当我完成dockerfile时,我可以与我的应用程序G
我不知道是怎么回事?? 任何人都可以提供一个数据通道的工作示例,将非常感谢。
问题内容: 我将Logstash 1.4.1和ES1.01一起使用,并希望根据计算出的校验和替换已经索引的文档。我目前在Logstash中使用“指纹”过滤器,该过滤器根据指定的算法创建“指纹”字段。现在- 我要完成的任务是ES 根据相同的指纹值替换现有的文档 。 例如,假设我有一个指纹字段值为“ 2c9a6802e10fbcff36177e0b88993f90868fa6fa”的文档。现在- 如果
我有一个网页,其中包含一个表格,你可以在其中编辑每一个单元格的内容。该表的典型大小约为12列40行。教师通常使用此页面编码我们区域的成绩。但我们的区域有时连接不畅,而且有时老师会丢失他们所做的编码(他们通常只在对所有内容进行编码后才保存)。 所以现在,我正在考虑实现一个autosave特性。我认为我想的解决方案很简单:每次编辑单元格然后失去焦点时,执行一个ajax请求来保存数据。至少我是这么想的。
我的团队希望使用ARM模板为我们的Web应用程序启用Application Insights Live Profiler。Application Insights的这一性能特性在以下链接https://docs.microsoft.com/en-us/azure/application-insights/app-insights-profiler中得到了解释。但是,我找不到任何关于如何使用ARM模
我在PHP8中有Azure web应用程序,希望从php代码连接到Oracle数据库12C。从文档中,我发现下面的博客说我们需要Oracle Instant Client,但我没有找到安装步骤。在这个博客中,他们提到php版本高达5.6,但我使用的是PHP8版本。 https://docs.microsoft.com/en-us/archive/blogs/azureossds/access-or
我已经设置了一个广告2016安装。现在打算使用它对web应用程序(java)进行身份验证。我有一段用于测试身份验证的代码,并有一些观察。 现在我在以下场景中测试了用户/密码组合- //第一个组合,user1存在于AD中并且密码正确(测试经过身份验证的绑定)。字符串userid=“user1@domain.com”,password=“user1password”;预期:身份验证成功。实际:身份验证
我想在应用程序启动时使用Spring ehCache将数据从数据库加载到缓存中,即在调用任何其他方法之前服务器启动时。我不想使用构造函数。请帮帮我。