elasticsearch,Indexing,elasticsearch" /> elasticsearch,Indexing,elasticsearch" />

Indexing 弹性搜索-何时使用其他索引?

Indexing 弹性搜索-何时使用其他索引?,indexing,elasticsearch,Indexing,elasticsearch,我正在学习弹性搜索,还有很多我不知道,但有一件事我不知道(或找不到那么多),那就是什么时候使用一个索引,什么时候使用更多索引。部分原因是我确实不知道弹性搜索索引到底是什么 你能解释一下什么是弹性搜索索引,什么时候应该只对所有数据使用一个索引,什么时候应该将数据拆分为多个索引吗 另外,我如何判断何时需要将数据拆分为多个索引,然后如何决定如何将数据拆分为新索引?您可以将其视为SQL数据库中的模式 模式包含给定用例的数据。索引保存用例的数据 最酷的是,搜索可以在一个请求中对多个索引进行 如果没有关于用

我正在学习弹性搜索,还有很多我不知道,但有一件事我不知道(或找不到那么多),那就是什么时候使用一个索引,什么时候使用更多索引。部分原因是我确实不知道弹性搜索索引到底是什么

你能解释一下什么是弹性搜索索引,什么时候应该只对所有数据使用一个索引,什么时候应该将数据拆分为多个索引吗


另外,我如何判断何时需要将数据拆分为多个索引,然后如何决定如何将数据拆分为新索引?

您可以将其视为SQL数据库中的模式

模式包含给定用例的数据。索引保存用例的数据

最酷的是,搜索可以在一个请求中对多个索引进行

如果没有关于用例的任何信息,很难告诉您更多。 这取决于许多因素:是否需要在一段时间后(比如每年)删除一些数据?您将索引多少个文档,文档的大小是多少

例如,假设您希望为日志编制索引,并在线保存3个月的日志。您将基本上每月创建一个索引,并在当前3个月的基础上创建一个别名

一个月结束后,为新月份创建新索引,修改别名并删除旧索引。删除索引可以有效提高性能并节省磁盘空间

因此,基本上在这种情况下,我建议使用多个索引

想象另一种情况。假设你正在启动一个游戏,你不知道你是否会成功。因此,从只包含一个碎片的index1开始,并在其上创建别名索引。当你启动游戏时,你会发现你需要更多的动力(更多的机器),因为你的响应时间正在急剧增加。创建一个包含两个碎片的新索引index2,并将其添加到别名索引中

这样,您可以轻松地扩展

这里的关键是IMHO别名。从项目开始使用别名进行搜索。这对你将来会有很大帮助

另一个用例可能是您为不同的客户工作。客户不希望他们的数据与其他客户混合。那么,在这种情况下,您是否需要为每个客户创建一个索引

事实上,elasticsearch非常灵活,可以帮助您根据需要设计架构


希望这有帮助。

elasticsearch中最大的单个数据单元是
索引。索引是elasticsearch中文档的逻辑和物理分区

Elasticsearch
索引
与关系世界中的
数据库
抽象最为相似。elasticsearch
索引
是一个在单个运行的服务器实例中完全分区的宇宙。文档和类型映射根据
索引
确定范围,这样就可以安全地跨
索引
重复使用名称和ID。索引也有自己的设置,用于集群复制、分片、自定义文本分析以及许多其他问题

供参考:-
索引是ElasticSearch的主要数据存储单元

有几种类型的数据存储技术:

分区: 假设你有一个指数,不断增长,增长永不停止。(即fb/twitter数据或任何类型的日志记录)。将这些类型的数据存储到多个索引中的最佳方法。通常的方法是使用时间间隔。时间间隔可能会有所不同。可以是每月、每周、每天。然后,当您获得一个新数据时,检查时间戳并移动到相应的索引

无分区: 如果你的索引没有增长那么快,你可以使用单一索引。这对于小桌子很有用

在探索弹性搜索时,您可以学习到许多管理数据的方法


我觉得它听起来很像一个表,每种类型都是一个表,但这仍然不能帮助我决定何时拥有多个表,因为我几乎从未决定在一个数据库中拥有多个表。谢谢!这就是我一直在寻找的信息。谢谢!您能否更详细地说明何时要跨多个索引拆分数据,即使数据具有相同的架构?您不能将数据拆分为多个索引。索引被划分为多个分片,您可以在配置文件中为索引定义分片数。。这可能有助于理解何时应该增加碎片,然后增加节点