我们为企业托管了许多网站,每个企业都有许多可能希望通过ES进行索引和搜索的文档类型。
通常,每个企业拥有的文档类型数量少于20,每种类型的文档数量可能少于10万(通常少得多)。
我不确定如何设置这些网站的数据?我应该将它们放在单独的索引中,还是应该将它们全部塞入具有不同文档类型的同一索引中?还是还有其他东西?
也许,我什至应该更深入地索引中小型网站?如果计划扩展到5万个站点,应该准备哪些最坏的情况?
如果使用多个映射类型创建一个索引,则将有一个很大的约束,要求您确保两种不同映射类型中具有相同名称的字段都不具有两种不同的类型,即,不能有一个名称blablaCount为同一索引long中的一个映射类型和double另一个映射类型中的。
blablaCount
long
double
您的里程可能会有所不同,但是由于ES 2.0和出色的映射重构,通常建议同时使用多个索引和每个索引一个映射类型。
我要做的是创建多个索引,每个索引创建一个映射/文档类型,然后您只需使用别名将属于给定业务的所有索引分组即可,这样,如果您需要查询给定业务的所有索引,则可以可以简单地查询该企业的别名。
另一种选择是把所有企业的所有文件在同一组索引,只是区分使用各业务term上的查询 businessId,甚至被现场的路由上businessId。
term
businessId
但是,在您的情况下,由于每个企业没有那么多文档,为每个企业创建全套索引可能会浪费资源,因此我可能会选择第二种选择,即创建一个索引,每个索引都有自己的映射/文档类型,然后将所有业务的所有文档存储在这些索引中。