我正在使用弹性搜索,并不完全了解索引是什么.例如,如果我有3个模型(背包,鞋子和手套),我是否将每个模型放在自己的索引中,或者我是否对每个模型的属性进行索引:即我为鞋子的鞋带
我试图了解搜索索引是否很慢.例如,如果我索引我的模型的每个属性,并且我说,20个索引,当我运行需要查看所有索引中的数据的搜索时,这比具有单个索引并查看存储的20个属性更慢在那个指数?
在Elasticsearch中,索引由一个或多个主分片组成,其中分片是Lucene实例.每个主分片可以具有零个或多个副本,其存在性为您提供高可用性和增强的搜索性能.单个分片可以容纳大量数据.但是,使用多个分片,可以更轻松地跨多个处理器和多个服务器分配工作负载.
那就是说,你需要一个平衡点.正确数量的分片取决于您的数据和上下文.碎片不是免费的,因此如果您运行100个节点群集时有数千个分片是有用的,那么您不希望在单个节点上使用它.
在Elasticsearch中,除了索引之外,您还拥有类型的概念.可以将索引视为数据库,类似于表.
使用不同的类型没有开销,并且比具有单独的索引更适合您的示例.
您仍然可以搜索所有类型(或选定的类型列表)以及所有索引(或选定列表)或任何组合.
每种类型都可以有自己的字段(如表中的列).
所以在你的例子中,我有一个包含3种类型的索引,每种类型都有自己的字段.从默认的主分片数(5)和默认的副本数(1)开始,只有在您更好地理解数据时才更改这些.
注意:不要将Elasticsearch中的索引与数据库中的索引混淆