当前位置: 首页 > 知识库问答 >
问题:

弹性搜索-何时使用另一个索引?

郭阳泽
2023-03-14

我正在学习弹性搜索,还有很多东西我没有得到,但有一件事我不知道(或发现所有的)是什么时候使用一个索引,什么时候使用更多的索引。部分原因是我不知道弹性搜索索引到底是什么。

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

奖励点/或者,我如何判断何时需要将我的数据拆分为多个索引,然后,我应该如何决定如何将数据拆分为新的索引?

共有3个答案

顾昊穹
2023-03-14

索引是ElasticSearch的主要数据存储单元。

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

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

无分区:如果您的索引增长不是那么快,您可以使用单个索引。这对小桌子很有用。

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

  • 以下是对初学者有用的视频。
冯驰
2023-03-14

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

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

供您参考:-弹力搜索中的碎片和副本

翟丰茂
2023-03-14

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

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

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

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

例如,假设您希望索引日志,并保留第3个月的日志。您将基本上每个月创建一个索引和一个别名在当前的3个月之上。

当一个月结束时,为新的月份创建一个新的索引,修改别名并移除旧的索引。删除索引是高效的性能和磁盘空间明智!

所以基本上,在这种情况下,我建议使用多个索引。

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

这样您就可以很容易地向外扩展。

这里的重点是IMHO别名。从项目开始就使用别名进行搜索。以后会帮你大忙的。

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

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

希望这有帮助。

 类似资料:
  • 我使用Elasticsearch允许用户输入要搜索的术语。例如,我要搜索以下属性'name': 如果使用以下代码搜索或,我希望返回此文档。 我尝试过做一个bool must和做多个术语,但它似乎只有在整个字符串都匹配的情况下才起作用。 所以我真正想做的是,这个词是否以任何顺序包含两个词。 有人能帮我走上正轨吗?我已经在这上面砸了一段时间了。

  • 由于已经有很多关于连字符的问题,我已经尝试了以下解决方案: 使用字符筛选器:ElasticSearch-在名称中使用连字符进行搜索。 所以我做了这个映射: 所以char筛选器似乎没有在搜索字符串上执行?我该怎么做才能让它起作用?

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 当我执行ps-aef grep elasticsearch HeapDumpOnOutOfMemoryError时看到了这一点 501 373 47 1 0 2:29pm ttys004 0:04.14/usr/bin/Java-xms4g-xmx4g-xss256k-djava.awt.headless=true-xx:+useparnewgc-xx:+useparnewgc-xx:+usepa

  • 我从ElasticSearch得到以下错误。 我在Ubuntu上运行Elasticsearch 1.7.2。 我做错了什么?