如何为日期字段创建索引
您可以使用 Atlas Search date
类型来为日期值编制索引。您可以使用 Atlas Search 的 range (范围)、 near (邻近)和 equals (等于)操作符查询类型为 date
的字段。要对 date
字段运行分面查询,必须使用 dateFacet 对日期字段进行索引。
您还可以使用 date
类型创建索引:
值为日期数组的字段。要了解更多信息,请参阅如何对数组元素进行索引。
作为 embeddedDocuments 类型索引的文档数组中的日期字段。
用于排序的日期字段。Atlas Search 自动对 2023 年 7 月以后创建的索引中的所有日期字段进行索引,以对 Atlas Search 结果进行排序。对于预先存在的索引,您必须重建索引以使用索引中的日期字段进行排序。要了解更多信息,请参阅更新现有索引和排序 Atlas Search 结果。
如果您启用动态映射,Atlas Search 会自动为 date
类型的字段创建索引。您可以使用 Atlas UI 中的可视化编辑器或 JSON 编辑器为字段编制 date
类型的索引。
为 date
类型定义索引
要定义 date
类型的索引,请在 Atlas UI 中选择您的首选配置方法,然后选择数据库和集合。
单击 Refine Your Index 配置索引。
在 Field Mappings 部分中,单击 Add Field Mapping 打开 Add Field Mapping 窗口。
单击 Customized Configuration(连接)。
从 Field Name 下拉菜单中选择要索引的字段。
注意
您无法对字段名称开头包含美元 (
$
) 符号的字段创建索引。单击 Data Type 下拉菜单并选择 Date。要了解有关此类型的更多信息,请参阅 字段属性。
单击 Add(连接)。
以下是 date
类型的 JSON 语法。将默认索引定义替换为以下内容。要了解有关字段的更多信息,请参阅字段属性。
1 { 2 "mappings": { 3 "dynamic": true|false, 4 "fields": { 5 "<field-name>": { 6 "type": "date" 7 } 8 } 9 } 10 }
配置 date
字段属性
Atlas Search date
类型采用以下参数:
选项 | 类型 | 必要性 | 说明 |
---|---|---|---|
type | 字符串 | 必需 | 标识此字段类型的人类可读标签。值必须是 date 。 |
尝试 date
类型的示例
以下索引定义示例使用 sample_mflix.movies 集合。如果您的集群上已加载示例数据,则可以使用 Atlas 用户界面中的可视化编辑器或 JSON 编辑器来配置索引。选择首选配置方法后,选择数据库和集合并优化索引以添加字段映射。
下面的索引定义示例将 released
字段索引编制为 Atlas Search date
类型,支持使用 near(邻近)、range(范围)和 equals(等于)等 Atlas Search 操作符针对该字段进行查询。
在 Add Field Mapping 窗口中,从 Field Name 下拉列表中选择 released。
单击 Data Type(添加数据)下拉列表并选择 Date(插入文档)。
单击 Add(连接)。
将默认索引定义替换为以下索引定义。
1 { 2 "mappings": { 3 "dynamic": false, 4 "fields": { 5 "released": { 6 "type": "date" 7 } 8 } 9 } 10 }
以下示例索引定义将 released
字段索引为 date
和 dateFacet
类型,以返回以下类型的查询结果:
在 Add Field Mapping 窗口中,从 Field Name 下拉列表中选择 released。
单击 Data Type(添加数据)下拉列表并选择 Date(插入文档)。
单击 Add(连接)。
重复步骤 1,并从 Data Type 下拉列表中选择 DateFacet。
单击 Add(连接)。
将默认索引定义替换为以下索引定义。
1 { 2 "mappings": { 3 "dynamic": false, 4 "fields": { 5 "released": [ 6 { 7 "type": "date" 8 }, 9 { 10 "type": "dateFacet" 11 } 12 ] 13 } 14 } 15 }