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

自定义分析器

在此页面上

  • Overview
  • 语法
  • 属性
  • 使用
  • 示例集合
  • 自定义分析器示例

Atlas Search 分析器通过对字符序列执行一系列转换、筛选和分组操作来准备要编制索引的文档集。可以从 Atlas UI 定义自定义分析器来满足特定索引编制需求。

自定义分析器采用以下语法:

"analyzers": [
{
"name": "<name>",
"charFilters": [ <list-of-character-filters> ],
"tokenizer": {
"type": "<tokenizer-type>"
},
"tokenFilters": [ <list-of-token-filters> ]
}
]

自定义分析器具有以下属性:

属性
类型
说明
必需?
name
字符串

自定义分析器的名称。名称在索引中必须唯一,并且不能以下列任何字符串开头:

  • lucene.

  • builtin.

  • mongodb.

charFilters
对象列表
包含零个或多个字符筛选器的数组。 有关更多信息,请参阅用法
no
tokenizer
对象
用于创建词元的分词器。 有关更多信息,请参阅用法
tokenFilters
对象列表
包含零个或多个词元过滤器的数组。有关更多信息,请参阅用法
no

要在索引集合时使用自定义分析器,请在 索引定义 analyzers 字段中包含以下内容:

  1. 可选。指定一个或多个字符筛选器。字符筛选器按照字符逐个检查文本,并执行筛选操作。

  2. 必需。指定分词器。分析器使用分词器将文本块拆分为组或词元,以便编制索引。例如,空格分词器根据空格出现的位置将文本字段拆分为单独的词。

  3. 可选。指定一个或多个词元筛选器。在分词步骤之后,生成的词元可以通过一个或多个词元筛选器。词元筛选器执行以下操作:

    • 提取词干,这会将相关词语(例如“talking”、“talked”和“talks”)缩减为词根“talk”。

    • 编辑,这会从公共文档中删除敏感信息。

注意

文本首先通过字符筛选器,然后是分词器,最后是词元筛选器。

字符筛选器分词器令牌筛选器页面包含相应的示例索引定义和查询示例。这些示例使用包含以下文档的示例 minutes 集合:

{
"_id": 1,
"page_updated_by": {
"last_name": "AUERBACH",
"first_name": "Siân",
"email": "auerbach@example.com",
"phone": "(123)-456-7890"
},
"title": "The team's weekly meeting",
"message": "try to siGn-In",
"text": {
"en_US": "<head> This page deals with department meetings.</head>",
"sv_FI": "Den här sidan behandlar avdelningsmöten",
"fr_CA": "Cette page traite des réunions de département"
}
}
{
"_id": 2,
"page_updated_by": {
"last_name": "OHRBACH",
"first_name": "Noël",
"email": "ohrbach@example.com",
"phone": "(123) 456 0987"
},
"title": "The check-in with sales team",
"message": "do not forget to SIGN-IN. See ① for details.",
"text" : {
"en_US": "The head of the sales department spoke first.",
"fa_IR": "ابتدا رئیس بخش فروش صحبت کرد",
"sv_FI": "Först talade chefen för försäljningsavdelningen"
}
}
{
"_id": 3,
"page_updated_by": {
"last_name": "LEWINSKY",
"first_name": "Brièle",
"email": "lewinsky@example.com",
"phone": "(123).456.9870"
},
"title": "The regular board meeting",
"message": "try to sign-in",
"text" : {
"en_US": "<body>We'll head out to the conference room by noon.</body>"
}
}
{
"_id": 4,
"page_updated_by": {
"last_name": "LEVINSKI",
"first_name": "François",
"email": "levinski@example.com",
"phone": "123-456-8907"
},
"title": "The daily huddle on tHe StandUpApp2",
"message": "write down your signature or phone №",
"text" : {
"en_US": "<body>This page has been updated with the items on the agenda.</body>" ,
"es_MX": "La página ha sido actualizada con los puntos de la agenda.",
"pl_PL": "Strona została zaktualizowana o punkty porządku obrad."
}
}

Atlas Search 可视化编辑器包含以下基于常用模板的内置自定义分析器,可帮助您入门:

  • 电子邮件解析器 - 使用它可对最多 200 个字符的电子邮件地址进行分词。例如,您可以将此分析器应用于示例集合中的 page_updated_by.email 字段。

  • 电话号码- 用于从美国格式的电话号码创建单个词元。 例如,您可以将此分析器应用于示例集合中的page_updated_by.phone字段。

  • 破折号分隔的 ID — 用于从连字符分隔的文本创建词元。 例如,您可以将此分析器应用于示例集合中的message字段。

可以使用这些内置的自定义分析器,也可以使用 Atlas Search 可视化编辑器或 JSON 编辑器创建自己的自定义分析器。要了解有关创建自己的自定义分析器的更多信息,请参阅以下页面:

注意

当您在 Atlas UI 中使用 Visual Editor 添加自定义分析器时,Atlas UI 会在 Custom Analyzers 部分中显示有关分析器的以下详细信息。

名称
标识自定义分析器的标签。
用于
使用自定义分析器的字段。如果自定义分析器不用于分析任何字段,则值为 None
字符筛选器
在自定义分析器中配置的 Atlas Search 字符筛选器
分词器
在自定义分析器中配置的 Atlas Search 分词器
词元筛选器
在自定义分析器中配置的 Atlas Search 令牌筛选器
操作

可单击的图标,指示可以对自定义分析器执行的操作。

  • 单击 编辑自定义分析器。

  • 单击 删除自定义分析器。

后退

多分析器