【问题标题】:In ElasticSearch i have to create single index and multiple types or multiple index with single types?在 ElasticSearch 中,我必须创建单个索引和多个类型,还是创建单个类型的多个索引?
【发布时间】:2018-09-01 18:07:48
【问题描述】:

我是弹性搜索的新手。我正在使用弹性搜索来搜索大数据。

我的应用程序中没有连接查询,那么哪种结构最适合我的应用程序?

【问题讨论】:

标签: elasticsearch


【解决方案1】:

过去几天我一直在研究 elasticserach。我想分享我的经验/学习。

1) 如果我们从 MYSQL、SQL 等关系型数据库迁移到ES,我们需要维护所有数据之间的所有关系。声明不同类型或索引的主键,在此基础上可以进行Query DSL。

2) 如果您每天处理数百万个数据,您需要进行相应的设计。有些人更喜欢基于持续时间的结构,例如 Day, Week, Month wise。它完全取决于您的用例。对于大型数据集 (~ 1TB),您需要将数据分布在各种 indexesshards 中。

3) 如果你的数据集很小,它也可以在默认设置下工作 (5 shrads 1 replica)。如果您的shards 中的数据集很小,它会给您带来更好的体验。

4) JOIN 查询在 elasticsearch 中的开销可能很大。如果您经常执行它可能会影响您的HEAP。因此,我建议使用pre-cooked 数据(在关系数据库中执行连接查询时获得的结果数据)和具有唯一 ID 的文档来准备您的数据集。您可以参考this。检查here 看看,我们如何执行JOIN

5) 在设计索引时可能需要注意以下几点:

  1. 不要将 Elasticsearch 视为数据库
  2. 在开始之前了解您的用例
  3. 明智地组织数据
  4. 巧妙利用副本
  5. 以实验为基础制定容量计划

6) 您错误的架构可能会导致reindex 停机,这将是沉重的代价。查看this article 了解index designing 和最佳实践。

【讨论】:

    猜你喜欢
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多