文档

索引、属性、字段作用详解

更新时间:

与开源ES的名词解释对比

由于开放搜索是阿里巴巴自主研发的大规模分布式搜索引擎平台,虽然有些名词与开源的Es叫法相同,但其作用却差距较大,这里做出如下对比:

Es

名词

Es解释

与关系型数据库对比

索引

索引(index)是Elasticsearch对逻辑数据的逻辑存储

通俗说就是数据库的名字

字段

在es中索引创建完了之后,是类型,类型之后,是字段

通俗说就是某个表里面的属性的名称

属性

字段的类型(string、int、double...)

字段的类型(string、int、double...)

OpenSearch

名词

OpenSearch解释

与关系型数据库对比

索引

索引是一种用于加速文档检索速度的数据结构,一个用户可以创建多个索引。

索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录

字段

字段是文档的组成单元,包含字段名称和字段内容。

通俗说就是某个表里面的属性的名称

属性

可以在filter、sort、aggregate、distinct子句使用,用来实现过滤统计等功能。(这里属性的作用,是OpenSearch特有的)

也可以理解为表里面的属性的名称

索引、属性、字段的作用

索引:在OpenSearch中索引的作用是用于召回文档,而召回文档又依赖于文档(:这里的文档可以看做需要用于全文检索的一个字段)内容本身的分词,因此索引是跟分析器(参考文本分析器)和字段(参考OpenSearch表结构)绑定的,一个索引只能用一种分析器,而一个分析器可以适用于多个索引,同时一个索引可以绑定多个字段(组合索引,参考索引结构),也可以只绑定一个字段。

属性:这里属性的作用是OpenSearch特有的,当用户需要对某些字段进行filter(过滤)、sort(全局排序)、aggregate(分组统计)、distinct(聚合打散)是必须把某些字段设置成为属性字段,这里的属性类似于给字段做一个标识,表明该字段可能有以上的特殊用法。

字段:字段的用法就很简单,通过索引和属性召回的doc(类似于数据库的一条记录)中,每一条doc都有很多字段。字段另一个用法就是需要与数据源的字段进行映射,因为字段是OpenSearch里定义的,所以如果需要通过数据源导入数据到OpenSearch的话,就需要将数据源的字段与OpenSearch的字段做映射(类型匹配,字段名称与内容对应)。

温馨提示:这里的对索引、属性、字段只是为了让用户理解,进行了通俗的介绍,详情可查看OpenSearch表结构

字段的其他用法

字段

  • 将字段设置为属性字段,可作用于排序策略配置,是策略排序里大部分函数的必要参数;