当前位置: 首页 > 面试题库 >

应该创建多个文档类型还是多个索引?

段干靖
2023-03-14
问题内容

我们为企业托管了许多网站,每个企业都有许多可能希望通过ES进行索引和搜索的文档类型。

通常,每个企业拥有的文档类型数量少于20,每种类型的文档数量可能少于10万(通常少得多)。

我不确定如何设置这些网站的数据?我应该将它们放在单独的索引中,还是应该将它们全部塞入具有不同文档类型的同一索引中?还是还有其他东西?

也许,我什至应该更深入地索引中小型网站?如果计划扩展到5万个站点,应该准备哪些最坏的情况?


问题答案:

如果使用多个映射类型创建一个索引,则将有一个很大的约束,要求您确保两种不同映射类型中具有相同名称的字段都不具有两种不同的类型,即,不能有一个名称blablaCount为同一索引long中的一个映射类型和double另一个映射类型中的。

您的里程可能会有所不同,但是由于ES 2.0和出色的映射重构,通常建议同时使用多个索引和每个索引一个映射类型。

我要做的是创建多个索引,每个索引创建一个映射/文档类型,然后您只需使用别名将属于给定业务的所有索引分组即可,这样,如果您需要查询给定业务的所有索引,则可以可以简单地查询该企业的别名。

另一种选择是把所有企业的所有文件在同一组索引,只是区分使用各业务term上的查询
businessId,甚至被现场的路由上businessId

但是,在您的情况下,由于每个企业没有那么多文档,为每个企业创建全套索引可能会浪费资源,因此我可能会选择第二种选择,即创建一个索引,每个索引都有自己的映射/文档类型,然后将所有业务的所有文档存储在这些索引中。



 类似资料:
  • 我正在启动一个JavaScript项目,它的父目录包含两个文件夹:和。这两个都需要Javascript包,但我不知道是应该在它们各自的依赖项中创建一个文件夹,还是应该只创建一个并在其中安装所有包。基本上我问的是我是否应该这样做: 或者这个:

  • 我知道在最新版本的Mongoose中,您可以将多个文档传递给create方法,在我的例子中,甚至可以传递一个文档数组。 我的问题是数组的大小是动态的,所以在回调中创建一个对象数组会很有帮助。 文档中没有,但这样做可能吗?

  • 问题内容: 我有一个可以为其创建一个(或多个)实例的实例。我正在使用Servlet环境,并且已经将一个EntityManagerFactory连接到Servlet(通过Servlet上下文),该Servlet在Servlet的生命周期中(因此,对于所有用户)都共享。 我可以执行以下操作之一: 在我的Servlet的生存期内创建一个EntityManager(例如,在所有用户之间共享) 为每个用户创

  • 我开始了Django-haystack和弹性搜索的实验。 使用: models.py 我想为上述模型创建一个搜索索引: 是否可以使用多个模型创建搜索索引。或者我必须为多个模型创建多个搜索索引。 注:两种型号完全独立。

  • 问题内容: 我有一些副作用要应用,并且想知道如何组织它们: 一次性使用 或几个useEffects 在性能和体系结构上有什么更好的选择? 问题答案: 您需要遵循的模式取决于您的useCase。 首先 ,您可能遇到以下情况:在初始安装期间需要添加事件侦听器,并在卸载时对其进行清理,而在另一种情况下,则需要清理特定的侦听器并在prop更改时将其重新添加。在这种情况下,使用两个不同的useEffect更

  • 按照文档的规范示例,假设我想在elasticsearch中存储推文,但我想指定一个处理两个以上字段的endpoint,例如。 在本例中,我想在推特上建立索引,但也要在推特句柄和月份上建立索引,包括推特类型和id。 这是可能的,还是唯一可能的映射类似于他们提供的东西,一个和一个,例如?