Elasticsearch:需要有关我的集群架构设计的建议

时间:2014-12-28 10:44:35

标签: elasticsearch

我对弹性搜索很新。我需要使用MongoDB中的数据构建一个搜索系统。所以,这是我的应用程序的高级概述:

  • 属于不同组织的不同用户
  • 用户可以上传多个数据集。每个数据集都作为单个文档存储在MongoDB中。但是,每个数据集都包含一个节点数组,其中包含我们感兴趣的数据。
  • 用户可以一次将一个数据集加载到他的工作区,并查看该特定数据集的整个数据。但是,一次只有一个用户可以查看一个数据集。因此,数据集彼此独立,我们永远不需要在多个数据集上进行任何聚合。
  • 用户可以在他/她的工作区中加载的数据集中执行搜索。搜索应返回数据集
  • 的节点数组中的匹配元素

为了说明,这里是MongoDB数据集集合中的单个文档

{
  "_id": ObjectId()
  "setName": "dummy_set",
  "nodes": [
    {
      "id": ObjectId(),
      "label": "some text",
      "content" : "more text"
    },
    . . . 
  ]
}

为此,我的设计是:

  • 我的群集中将有一个索引
  • 每个单个数据集将以索引中的单独类型存储。类型的名称将是mongoDB中数据集的ObjectId
  • 数据集的节点数组中的每个元素将成为elasticsearch中相应类型的单个文档。
  • 我将使用自定义路由来确保单个数据集仅驻留在一个分片上。为此,我将使用类型名称(来自MongoDB的数据集的ObjectId)作为我的路由键。我假设,我必须将每个文档存储在elasticsearch中吗?

现在我需要知道我是否朝着正确的方向前进?该解决方案是否具有可扩展性,或者设计中存在严重错误,并希望听到有关如何改进它的一些建议。

0 个答案:

没有答案