【问题标题】:ElasticSearch, datastore for user and social data?ElasticSearch,用户和社交数据的数据存储?
【发布时间】:2012-01-01 16:21:17
【问题描述】:

我决定使用ElasticSearch 作为我的搜索站点的主要数据的主要存储。它是一个 NoSQL 数据库,提供全文搜索和其他出色的搜索功能。

将我的用户数据和社交关系也存储在 ElasticSearch 引擎中是否也有用?还是应该将其存储在单独的数据库中?

【问题讨论】:

  • 是的,我看到了这个问题,但我很好奇在弹性搜索数据库中具体的社交和用户数据是否可行。
  • 如果没有关于您的“用户数据”和“社会关系”的更多详细信息以及您希望如何查询或汇总数据的具体示例,除了“是的,您可以做那会很有用”。
  • 用户数据,如登录信息、密码、个人资料信息。社交数据包括关注者列表和用户关注的列表。您可以在 Twitter 中找到相同类型的定向关系。

标签: nosql social elasticsearch


【解决方案1】:

如果您能以某种方式保护数据库,我会说将所有这些信息保存在 ElasticSearch 中。 AFAIK,ES 不支持通过身份验证、密钥等保护应用程序的任何方法。因此,如果您无法保护该数据,您肯定不想将任何用户登录详细信息放在那里。

在我的应用程序中,我已阻止对我的 ES 实例的端口访问仅限于本地主机。然后,我在node.js 的ES 之上构建了一个服务层。在我进入数据层之前,我的所有身份验证都已处理。

关于 ES 的一件事是,更多的数据并不一定会减慢查询速度除非您正在索引所有这些数据或针对它进行查询。如果您只需要检索该数据,那么您可以随时获取“_source”文档。确保您有磁盘空间来处理您的数据,但除此之外,我会说将其全部保存 - 并在索引的内容和方式上保持战略性。

【讨论】:

  • 感谢您的提示。我不相信 ES 有安全机制。我将效仿并阻止对 ES 的端口访问。谢谢!
  • 另外,不是每个添加到 Elastic Search 的文档都会自动编入索引吗?不知道你只是抓住“_source”文档是什么意思。将不得不更仔细地查看文档..
  • 嗯,“分析”会是一个更好的说法。如果您有许多需要进行文本分析的属性,那么这会减慢您的查询速度。当您从 ES 检索文档时,返回的属性之一是“_source” - 其中包含整个文档。
  • 为了安全,设置一个自己的elasticsearch代理端点,并通过搜索post数据传递,同时使用框架来处理安全性(例如spring / preauthorize)是相当简单的。然后将您的弹性搜索端点放在安全的地方。就我而言,我使用 wso2 身份服务器推出了自己的安全性,带有自定义安全性注释,但它在概念上是相似的。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多