Docs 菜单
Docs 主页
/
Atlas
/ / / /

如何为分面搜索编制日期字段索引

在此页面上

  • dateFacet 类型限制
  • dateFacet 类型定义索引
  • 配置 dateFacet 字段属性
  • dateFacet类型尝试示例
  • 了解详情

您可以使用 Atlas Search dateFacet类型为分面的日期值编制索引。

Atlas Search 仅支持针对索引为 dateFacet 类型的字段的分面查询。要在同一字段上执行普通搜索,必须将该字段也索引为日期类型。

要对嵌入式文档中的 string 字段进行分面,您必须将父字段作为文档类型进行索引。当您在嵌入式文档中对字符串字段进行分面时,Atlas Search 只返回与父文档数量匹配的分面计数。

Atlas Search 不会为分面而动态地索引日期值。您必须使用静态映射来为分面索引日期值。您可以使用 Atlas UI 中的可视化编辑器JSON 编辑器将日期字段索引为 number 类型。

适用以下限制:

  • 如果日期字段位于数组内部或位于数组中的文档内部,则无法为其创建分面索引。

  • Atlas Search 不支持对作为embeddedDocuments字段一部分进行索引的字段进行日期分面。

    注意

    要为此功能投票并提供反馈,请参阅这篇 MongoDB 反馈文章。

要定义 dateFacet 类型的索引,请在 Atlas UI 中选择您的首选配置方法,然后选择数据库和集合。

  1. 单击 Refine Your Index 配置索引。

  2. Field Mappings 部分中,单击 Add Field Mapping 打开 Add Field Mapping 窗口。

  3. 单击 Customized Configuration(连接)。

  4. Field Name 下拉菜单中选择要索引的字段。

    注意

    您无法对字段名称开头包含美元 ($) 符号的字段创建索引。

  5. 单击Data Type下拉列表并选择DateFacet 。 要了解有关此类型的更多信息,请参阅字段属性

  6. 单击 Add(连接)。

以下是 dateFacet 类型的 JSON 语法。将默认索引定义替换为以下内容。要了解有关字段的更多信息,请参阅字段属性

{
"mappings": {
"dynamic": true|false,
"fields": {
"<field-name>": {
"type": "dateFacet"
}
}
}
}

Atlas Search dateFacet 类型采用以下参数:

用户界面字段名称
JSON Option
类型
必要性
说明

Data Type

type

字符串

必需

标识此字段类型的人类可读标签。值必须是 dateFacet

以下索引定义示例使用 sample_mflix.movies 集合。如果您的集群上已加载示例数据,则可以使用 Atlas 用户界面中的可视化编辑器或 JSON 编辑器来配置索引。选择首选配置方法后,选择数据库和集合并优化索引以添加字段映射。

以下示例索引定义将 released 字段作为 Atlas Search dateFacet 类型进行索引,以支持使用 Atlas Search 分面对该字段进行查询。

  1. Add Field Mapping 窗口中,从 Field Name 下拉列表中选择 released

  2. 单击 Data Type(添加数据)下拉列表并选择 DateFacet(插入文档)。

  3. 单击 Add(连接)。

将默认索引定义替换为以下索引定义。

{
"mappings": {
"dynamic": false,
"fields": {
"released": {
"type": "dateFacet"
}
}
}
}

以下示例索引定义将 released 字段索引为 dateFacetdate 类型,以返回以下类型的查询结果:

  • 使用 Atlas Search 组件进行查询的元数据结果

  • 使用 Atlas Search 操作符(如接近等于范围) 搜索查询结果。

  1. Add Field Mapping 窗口中,从 Field Name 下拉列表中选择 released

  2. 单击 Data Type(添加数据)下拉列表并选择 DateFacet(插入文档)。

  3. 单击 Add(连接)。

  4. 重复步骤 1,并从 Data Type 下拉列表中选择 Date

  5. 单击 Add(连接)。

将默认索引定义替换为以下索引定义。

{
"mappings": {
"dynamic": false,
"fields": {
"released": [
{
"type": "dateFacet"
},
{
"type": "date"
}
]
}
}
}

要学习;了解有关 facet 收集器的详情并查看示例查询,请参阅示例。

要学习;了解如何使用分面(Facet)定义创建索引并使用 facet 收集器查询该索引,请参阅如何在Atlas Search中使用分面教程。

后退

日期