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

Nar*_*tor 11 indexing elasticsearch

我正在学习弹性搜索,而且还有很多我没有得到的,但有一点我无法弄清楚(或者发现那么多)是何时使用一个索引,何时使用更多.部分原因是我绝对不知道弹性搜索索引是什么.

您能解释弹性搜索索引是什么,何时应该只使用一个数据,何时应该将数据拆分为多个索引?

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

dad*_*net 14

您可以将其视为SQL数据库中的Schema.

Schema可以有很多表.索引可以有多种类型.

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

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

例如,假设您要对日志进行索引并保持3个月的日志.您基本上每月创建一个索引,并在当前3个月之上创建一个别名.

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

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

想象一下另一种情况.假设你正在推出一款游戏而你并不确切知道你是否会成功.因此,从仅包含一个分片的index1开始,并在其上创建别名索引.你启动游戏后发现随着响应时间的急剧增加,你将需要更多的电量(更多机器).使用两个分片创建一个新索引index2,并将其添加到别名索引中.

这样您就可以轻松扩展.

这里的关键点是恕我直言的别名.从项目开始使用别名进行搜索.它将来会对你有所帮助.

另一个用例可能是您正在为不同的客户工作.客户不希望将他们的数据与其他客户混在一起.那么在这种情况下你可能需要为每个客户创建一个索引吗?

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

希望这可以帮助.