gpt4 book ai didi

search - 我应该如何考虑搜索引擎索引?

转载 作者:行者123 更新时间:2023-11-29 02:51:36 25 4
gpt4 key购买 nike

我正在使用 Elasticsearch ,但不明白什么是索引。例如,如果我有 3 个模型(背包、鞋子和手套),我是将每个模型放在自己的索引中,还是对每个模型的属性进行索引:即,我对鞋子的鞋带、鞋底等进行索引?

我想了解跨索引搜索是否很慢。例如,如果我为我的模型的每个属性编制索引并且我说有 20 个索引,那么当我运行需要查看所有索引中的数据的搜索时,这比使用单个索引并查看存储的 20 个属性慢吗在那个指数?

最佳答案

在 Elasticsearch 中,一个索引由一个或多个主分片组成,其中一个分片是一个 Lucene 实例。每个主分片可以有零个或多个副本,副本的存在为您提供高可用性和更高的搜索性能。

单个分片可以容纳大量数据。但是,使用多个分片可以更轻松地在多个处理器和多个服务器之间分配工作负载。

也就是说,您需要一个平衡点。正确的分片数量取决于您的数据和上下文。分片不是免费的,因此虽然在运行 100 节点集群时拥有数千个分片很有用,但您不希望它出现在单个节点上。

在 Elasticsearch 中,除了索引之外,还有类型的概念。将索引想象成一个数据库,将类型想象成一张表。

使用不同的类型没有开销,并且比使用单独的索引更适合您的示例。

您仍然可以搜索所有类型(或选定的类型列表)和所有索引(或选定的列表)或任意组合。

每种类型都可以有自己的字段(就像表格中的列)。

所以在您的示例中,我有一个包含 3 种类型的索引,每种类型都有自己的字段。从主分片的默认数量 (5) 和副本的默认数量 (1) 开始,只有当您更好地了解数据时才更改这些。

注意:不要将 Elasticsearch 中的索引与数据库中的索引混淆

关于search - 我应该如何考虑搜索引擎索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773710/

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