我们需要在elasticsearch中专门创建索引吗?

5kgi1eie  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(382)

我对elasticsearch很陌生,我知道elasticsearch中的索引有两种含义,要么是Map到节点碎片的逻辑名称空间,要么像在关系数据库管理系统中那样索引一些数据。所以通常在sql中,我会使用“create index”在一个字段或多个字段上创建一个或多个索引,那么在elasticsearch中我该如何做呢?或者elasticsearch是自动执行索引(动词)来提高搜索效率的?

hvvq6cgz

hvvq6cgz1#

elasticsearch中的索引在内部Map到碎片和副本,这是对的,但您会对rdbms中索引的命名/含义感到困惑(在rdbms中创建索引是为了提高搜索效率)。
在elasicsearch中,索引包含一个Map(您可以在其中定义各种字段、它们的数据类型和分析器),有关更多信息,请参阅elasticsearch中的Map
现在,在elasticsearch中定义一个字段时,它接受几个参数,其中一个参数也称为index,根据相同的官方文档
index选项控制是否为字段值编制索引。它接受true或false,并默认为true。未编入索引的字段不可查询。
这意味着,字段将是用于查询/搜索数据的elasticsearch倒排索引的一部分,显然,如果没有此选项,您将无法搜索此特定字段,并且由于这是倒排索引的一部分(更快的数据结构可提高搜索性能),您将隐式获得更好的搜索性能:)
正如官方文档中提到的,index param的默认值为true,因此要回答您的问题,您不需要在elasticsearch中专门定义索引。

相关问题