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

如何在分面搜索时对字符串字段进行索引

在此页面上

  • stringFacet 类型定义索引
  • 配置stringFacet类型的属性
  • stringFacet 类型使用示例

您可以使用 Atlas Search stringFacet 类型为 string 字段建立分面索引,这样就可以在该字段上运行分面查询。Atlas Search 在为 string 字段进行分面索引时不应用分析器。

Atlas Search 仅支持对索引为 stringFacet 类型的字段进行 分面查询。要对同一字段执行常规搜索,还必须按类型 string 对该字段进行索引。

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

Atlas Search 不会动态索引 string 值已进行分面。您必须使用静态映射来索引 string 值以进行分面。您可以使用 Atlas UI 中的可视化编辑器JSON 编辑器string 字段编制索引为 numberFacet 类型。

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

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

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

  3. 单击 Customized Configuration(连接)。

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

    注意

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

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

  6. 单击 Add(连接)。

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

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

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

用户界面字段名称
JSON Option
类型
必要性
说明
Data Type
type
字符串
必需
标识此字段类型的可读标签。值必须是 stringFacet。Atlas Search 会将索引为 stringFacet 类型的 BSON string 值截断为大约 8000UTF-16 代码单位。

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

样本数据集中sample_mflix.moviescollection的以下索引定义将genres字段索引为stringFacet以进行分面(Facet)。

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

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

  3. 单击 Add(连接)。

{
"mappings": {
"dynamic": false,
"fields": {
"genres": {
"type": "stringFacet"
}
}
}
}

示例数据集sample_mflix.movies 集合的以下索引定义将 genres 字段索引为 stringFacetstring 类型,从而为查询返回以下类型的结果:

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

  • 使用 Atlas Search 操作符(如文本短语和其他执行文本搜索的操作符)搜索查询结果。

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

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

  3. 单击 Add(连接)。

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

  5. 查看 String Properties 的默认设置,然后单击 Add

{
"mappings": {
"dynamic": false,
"fields": {
"genres": [
{
"type": "stringFacet"
},
{
"type": "string"
}
]
}
}
}

提示

另请参阅:其他索引定义示例

后退

字符串