elasticsearch ElasticSearch 6.2中的多对映性,elasticsearch,multi-tenant,elasticsearch,Multi Tenant" /> elasticsearch ElasticSearch 6.2中的多对映性,elasticsearch,multi-tenant,elasticsearch,Multi Tenant" />

elasticsearch ElasticSearch 6.2中的多对映性

elasticsearch ElasticSearch 6.2中的多对映性,elasticsearch,multi-tenant,elasticsearch,Multi Tenant,我刚刚开始评估一个项目的弹性搜索。我的应用程序是一个多租户应用程序,我想到的第一个想法是为每个文档类型和租户提供不同的索引。在这方面,elastic公司似乎建议不要使用太多的索引,但当时他们支持索引中的异构类型 既然现在他们建议对每种文档类型使用一个单独的索引,那么是否可以安全地假设过去由于索引过多而出现的内存问题不是问题?最简单的方法是使用一层嵌套。 例如: "tenant-1":{ "id": 1 }, "tenant-2":{ "id": "id-1" } 最简单的方法是

我刚刚开始评估一个项目的弹性搜索。我的应用程序是一个多租户应用程序,我想到的第一个想法是为每个文档类型和租户提供不同的索引。在这方面,elastic公司似乎建议不要使用太多的索引,但当时他们支持索引中的异构类型


既然现在他们建议对每种文档类型使用一个单独的索引,那么是否可以安全地假设过去由于索引过多而出现的内存问题不是问题?

最简单的方法是使用一层嵌套。 例如:

"tenant-1":{ 
  "id": 1
 },
"tenant-2":{ 
  "id": "id-1"
 }

最简单的方法是有一层嵌套。 例如:

"tenant-1":{ 
  "id": 1
 },
"tenant-2":{ 
  "id": "id-1"
 }

这取决于多少是“多”,取决于运行集群时必须处理这些“多”索引的硬件类型。。。请更具体一点。该应用程序是基于SAAS的。每个客户的文档类型可以从200到500不等。一组客户将拥有专用的弹性集群。组大小取决于数据大小和来自客户的流量。硬件范围从16GB RAM到96GB RAM。此外,我们的应用程序(如salesforce)非常可配置,因此对于相同的模块类型,两位客户可以提供非常不同的字段集。因此,在客户之间共享索引是绝对不可能的。根据ES 6.2指南,应根据其将包含的文档类型(同质)创建索引。在多租户设置中创建索引还有其他考虑吗?我想我有资格回答这个问题。我也实现了同样的功能。您可以为多个租户创建多个索引。这将帮助您实现数据隔离。因此,在索引中,您可以根据客户需求保留多种类型。您的数据将不会在任何人之间共享。@Anfelipe我们稍微更改了索引模型。我们为每个租户维护1个索引。租户的所有文档类型都将添加到同一索引中。每个doctype都有一个唯一的typeId。为了避免索引字段映射爆炸,我们在主数据库Sql Server中维护了一个映射表。由于这个映射表,我们在不同的文档类型中有相同的字段名。这取决于“多”是多少,以及运行集群时必须处理这些“多”索引的硬件类型。。。请更具体一点。该应用程序是基于SAAS的。每个客户的文档类型可以从200到500不等。一组客户将拥有专用的弹性集群。组大小取决于数据大小和来自客户的流量。硬件范围从16GB RAM到96GB RAM。此外,我们的应用程序(如salesforce)非常可配置,因此对于相同的模块类型,两位客户可以提供非常不同的字段集。因此,在客户之间共享索引是绝对不可能的。根据ES 6.2指南,应根据其将包含的文档类型(同质)创建索引。在多租户设置中创建索引还有其他考虑吗?我想我有资格回答这个问题。我也实现了同样的功能。您可以为多个租户创建多个索引。这将帮助您实现数据隔离。因此,在索引中,您可以根据客户需求保留多种类型。您的数据将不会在任何人之间共享。@Anfelipe我们稍微更改了索引模型。我们为每个租户维护1个索引。租户的所有文档类型都将添加到同一索引中。每个doctype都有一个唯一的typeId。为了避免索引字段映射爆炸,我们在主数据库Sql Server中维护了一个映射表。由于这个映射表,我们在不同的文档类型中有相同的字段名