索引

Adobe Experience Manager 可保留网站特定部分中所有已发布页面的索引。这通常用于构建列表、馈送以及为页面或内容片段启用搜索和过滤用例。

AEM将此索引保留在电子表格中,并使用JSON提供对其的访问权限。 有关详细信息,请参阅文档电子表格和JSON

我们将引入通过先预览Excel工作簿或Google电子表格来创建查询索引的概念。 请注意,如果您在GitHub存储库中名为helix-query.yaml的文件中已具有自定义查询定义,则无法再以这种方式创建索引。 必须将每个新索引手动添加到该helix-query.yaml

设置初始查询索引

在本节中,我们将在根文件夹中创建一个查询索引,该索引将索引后端中的所有文档。

  1. 使用指向您的SharePoint站点或Google驱动器的装入点设置您的fstab.yaml后,转到根文件夹。
  2. 根据您的后端,为SharePoint创建名为query-index.xlsx的工作簿或为Google驱动器创建名为query-index的电子表格。
  3. 在该电子表格或工作簿中,创建一个名为raw_index的工作表。

设置要添加到索引的属性

  1. query-index文档中添加标题行,并在第一列中添加path作为标题名称。
  2. 在标题行的以下列中,添加您需要从渲染的HTML页面中提取的所有其他属性。

在Google Drive中的以下示例中,提取的字段为titleimagedescriptionlastModified

页面在发布时会编入索引。 要从索引中删除页面,必须取消发布这些页面。

对于没有自定义索引定义的简单方案,元数据属性设置为robots的页面将自动被AEM从索引中忽略。 noindex(这里有一些特殊场景,有关更多详细信息,请参阅机器人特殊场景部分。)

下表总结了可用的属性,以及这些属性在HTML页面中的提取位置。

名称
描述
author
返回head元素中名为author的Meta标记的内容。
title
返回head元素中og:title元属性的内容。
date
返回head元素中名为publication-date的Meta标记的内容。
image
返回head元素中og:image元属性的内容。
category
返回head元素中名为category的Meta标记的内容。
tags

以数组形式返回head元素中名为article:tag的Meta标记的内容。

有关数组处理的详细信息,请参阅文档电子表格和JSON

description
返回head元素中名为description的Meta标记的内容。
robots
返回head元素中名为robots的Meta标记的内容。
lastModified
返回文档Last-Modified响应标头的值。

对于添加的其他每个标头,索引器将尝试查找具有相应名称的meta标记。

激活索引

要激活索引,请使用sidekick预览电子表格。 这将创建一个索引配置。

正在检查索引

管理服务有一个API端点,您可以在其中检查页面的索引表示形式。 给定您的GitHub所有者、存储库、分支和所有者以及页面的资源路径,其端点为:

https://admin.hlx.page/index/<owner>/<repo>/<branch>/<path>

您应该获取一个JSON响应,其中数据节点包含页面的索引表示形式。

调试索引配置

AEM CLI具有一项功能,可在您更改查询配置时打印索引记录,这有助于查找正确的CSS选择器:

$ aem up --print-index

有关详细信息,请参阅AEM CLI GitHub文档,并观看此视频以了解有关此功能的更多信息。

设置更多索引配置

您可以通过创建自己的helix-query.yaml. 来定义自己的自定义索引配置。这样,您就可以在同一helix-query.yaml中拥有多个索引配置,其中网站的某些部分会被索引到不同的Excel工作簿或Google电子表格中。 有关详细信息,请参阅文档索引引用

机器人的特殊场景

关于如何通过AEM为网站设置索引以及索引设置,有一些细微差别。 我们来看看他们:

在以下2种情况下,将页面元数据中的robots设置为noindex将​ 不会 ​阻止AEM为其编制索引:

  • 您已在query-index.xlsx中添加了robots
  • 您的Github存储库中具有helix-query.yaml,即您已定义​ 自定义索引定义。

推荐

  1. 如果您没有自定义索引定义,建议​ 不要 ​向索引表添加robots列,除非您需要这样做。
    robots列添加到索引工作表将导致AEM对页面编制索引,即使它可能将robots元数据设置为noindex.也是如此
  2. 如果您有自定义索引定义,则无论在页面元数据上将robots设置为noindex,AEM都将对页面编制索引。 如果要防止出现这种情况,可以使用电子表格筛选器从索引中忽略将robots元数据设置为 noindex的页面。 有关更多详细信息,请参阅下面标题为“强制执行 noindex 配置及自定义索引定义”的部分。

使用自定义索引定义强制实施“noindex”配置

如果您在 helix-query.yaml中定义了自己的自定义索引定义,则将robots属性设置为noindex无法有效地阻止对页面进行索引。 要强制 noindex 配置存在这种情况,请执行以下操作:

  1. query-index.xlsx中创建名为“helix-default”的工作表。 之后,query-index.xlsx电子表格应有2张“raw_index“helix-default。 ““raw_index”工作表包含所有原始索引数据。
  2. 修改您的自定义helix-query.yaml(它必须位于项目的Github存储库中)并添加robots属性,以便为其编制索引。
  3. 现在,在query-index.xlsx电子表格中设置“helix-default工作表以使用Excel公式自动填充,该公式可确保raw_index中将 robots属性设置为 noindex的所有行都不会复制到 helix-default工作表。 可以使用类似于=FILTER(Table1,NOT(Table1[robots]="noindex"))的Excel公式来完成此操作
  4. 现在,您的helix-default工作表只包含来自 raw_index且未将 robots属性设置为 noindex的行。
  5. 确保发布要编制索引的页面。
  6. 现在,如果您照常获取索引,如: https://<branch>--<repo>-<org>.hlx.page/query-index.json,则只会从 helix-default工作表获取数据,即未明确阻止条目通过设置为 noindexrobot 属性进行索引的条目。
recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec