gpt4 book ai didi

search - Elasticsearch 同一数据的一个索引或多个索引

转载 作者:行者123 更新时间:2023-12-02 22:33:19 25 4
gpt4 key购买 nike

我正在构建一个可以从ElasticSearch中大大受益的应用程序。在当前版本中,我使用1个单一索引:“messages”,而只有1种类型:“message”。

邮件由以下格式组成(平均10kb):

messages
- id
- subject (string)
- date (date) (format: dateOptionalTime)
- account_id (integer)
- body (string)
- receivers (nested)
properties:
name (string)
email (string)
- files (nested)
properties:
content_type (string)
filename (string)
size (long)

当前搜索基于account_id(向每个查询添加过滤器)。在我的mySQL数据库中,每个帐户都有一个company_id(一个公司可以有多个帐户)。将来,我可能愿意允许用户在整个公司范围内进行搜索,而不是在单个帐户中进行搜索。我的数据集有点大(> 50m个文档)。

我的问题是什么才是最好的,仅将单个索引(消息)与单个类型(消息)一起使用,或者在公司范围内的索引上执行类似的操作,其中每个索引我都会为每个公司创建一个新索引(例如messages_%company_id) %)。

我的数据集每月将增长1-5M个文档,几乎不必删除文档。在这里,旧数据与新插入的文档一样有值(value)。

最佳答案

我会坚持使用单个索引和单个类型。

ES“索引”类似于SQL“数据库”。 ES“类型”类似于SQL“表”。您会为单独的公司创建单独的数据库还是单独的表?可能不会。

ES的扩展性非常好,可以轻松搜索类型中几乎所有您想要的东西。只要您为ES提供必要的硬件,50M的文档应该没有问题。

还有一点要注意:如果有让ES成为唯一数据存储的诱惑,我会拒绝。我认为目前还没有。保持MySQL数据库为“权威”存储引擎,并使用ES进行搜索。

关于search - Elasticsearch 同一数据的一个索引或多个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com