自定义分析器
Overview
Atlas Search 分析器通过对字符序列执行一系列转换、筛选和分组操作来准备要编制索引的文档集。可以从 Atlas UI 定义自定义分析器来满足特定索引编制需求。
语法
自定义分析器采用以下语法:
"analyzers": [ { "name": "<name>", "charFilters": [ <list-of-character-filters> ], "tokenizer": { "type": "<tokenizer-type>" }, "tokenFilters": [ <list-of-token-filters> ] } ]
属性
自定义分析器具有以下属性:
使用
要在索引集合时使用自定义分析器,请在 索引定义 analyzers
字段中包含以下内容:
可选。指定一个或多个字符筛选器。字符筛选器按照字符逐个检查文本,并执行筛选操作。
必需。指定分词器。分析器使用分词器将文本块拆分为组或词元,以便编制索引。例如,空格分词器根据空格出现的位置将文本字段拆分为单独的词。
可选。指定一个或多个词元筛选器。在分词步骤之后,生成的词元可以通过一个或多个词元筛选器。词元筛选器执行以下操作:
提取词干,这会将相关词语(例如“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 编辑器创建自己的自定义分析器。要了解有关创建自己的自定义分析器的更多信息,请参阅以下页面: