朋友到朋友列表的弹性搜索映射
elasticsearch mapping for Friend to Friend list
我们已经开始在我们的项目中使用elasticsearch,我们将用户数据和他的朋友列表存储为嵌套对象,并嵌套到存储朋友的朋友列表的嵌套对象,因为我们在进行全局搜索时需要这些数据。
现在我们正在将这些数据与我们的数据库实时同步,所以这对以 50-100 TPS 的速度实时完成同步是否有益,否则将来会产生问题。
我们需要创建复杂的查询来更新数据,因为我们在第 2 级管理好友列表。那么如何轻松地创建高级脚本,我已经在 Google 中检查过了,但没有找到任何详细信息。
如果我的做法不对,请告诉我。
回答你的第一个问题
so is this good to syncing done in real time 50-100 TPS or in future
it will create problem
从 ES6.0 版本开始,自动支持和检测多级嵌套,如果内部嵌套查询存在于另一个嵌套查询中,则会自动匹配相关的嵌套级别(而不是根)。但需要注意的是,索引具有 100 个嵌套字段的文档实际上会索引 101 个文档,因为每个嵌套文档都作为单独的文档进行索引。为了防止错误定义的映射,每个索引可以定义的嵌套字段的数量通常使用 index.mapping.nested_fields.limit
限制为 50 个。此设置允许您限制可以手动或动态创建的字段映射的数量,以防止不良文档导致映射爆炸。所以回答你的问题,这很好,但是随着你的数据的增长,管理变得更加复杂,你有映射爆炸的危险。
回答你的第二个问题
We need to create complex queries for updating the data because we are
managing friend list in 2nd level. so how to create advance scripting
in painless, I have checked this in Google but not found anything in
detail.
您可能需要在此处提供一些背景信息才能理解为什么您的方法是必要的,但基本上,在社交资料背景下,像现在这样管理朋友列表总是一个坏主意,尤其是如果您预测未来的规模化。它可能适用于较小的用例,但在扩展时效果不佳。这是因为,关系变得更加复杂,您最终会拥有太多的多嵌套对象。如前所述,所有因素都保持不变,您可能需要查看此类场景的图形数据库。但是,您的方法可能有其他原因,这就是为什么您可能想要列举您的上下文以便我们更好地建议。
希望对您有所帮助!!
我们已经开始在我们的项目中使用elasticsearch,我们将用户数据和他的朋友列表存储为嵌套对象,并嵌套到存储朋友的朋友列表的嵌套对象,因为我们在进行全局搜索时需要这些数据。 现在我们正在将这些数据与我们的数据库实时同步,所以这对以 50-100 TPS 的速度实时完成同步是否有益,否则将来会产生问题。
我们需要创建复杂的查询来更新数据,因为我们在第 2 级管理好友列表。那么如何轻松地创建高级脚本,我已经在 Google 中检查过了,但没有找到任何详细信息。
如果我的做法不对,请告诉我。
回答你的第一个问题
so is this good to syncing done in real time 50-100 TPS or in future it will create problem
从 ES6.0 版本开始,自动支持和检测多级嵌套,如果内部嵌套查询存在于另一个嵌套查询中,则会自动匹配相关的嵌套级别(而不是根)。但需要注意的是,索引具有 100 个嵌套字段的文档实际上会索引 101 个文档,因为每个嵌套文档都作为单独的文档进行索引。为了防止错误定义的映射,每个索引可以定义的嵌套字段的数量通常使用 index.mapping.nested_fields.limit
限制为 50 个。此设置允许您限制可以手动或动态创建的字段映射的数量,以防止不良文档导致映射爆炸。所以回答你的问题,这很好,但是随着你的数据的增长,管理变得更加复杂,你有映射爆炸的危险。
回答你的第二个问题
We need to create complex queries for updating the data because we are managing friend list in 2nd level. so how to create advance scripting in painless, I have checked this in Google but not found anything in detail.
您可能需要在此处提供一些背景信息才能理解为什么您的方法是必要的,但基本上,在社交资料背景下,像现在这样管理朋友列表总是一个坏主意,尤其是如果您预测未来的规模化。它可能适用于较小的用例,但在扩展时效果不佳。这是因为,关系变得更加复杂,您最终会拥有太多的多嵌套对象。如前所述,所有因素都保持不变,您可能需要查看此类场景的图形数据库。但是,您的方法可能有其他原因,这就是为什么您可能想要列举您的上下文以便我们更好地建议。
希望对您有所帮助!!