索引
Adobe Experience Manager 可保留网站特定部分中所有已发布页面的索引。这通常用于构建列表、馈送以及为页面或内容片段启用搜索和过滤用例。
AEM将此索引保留在电子表格中,并使用JSON提供对其的访问权限。 有关详细信息,请参阅文档电子表格和JSON。
我们将引入通过先预览Excel工作簿或Google电子表格来创建查询索引的概念。 请注意,如果您在GitHub存储库中名为helix-query.yaml的文件中已具有自定义查询定义,则无法再以这种方式创建索引。 必须将每个新索引手动添加到该helix-query.yaml。
设置初始查询索引
在本节中,我们将在根文件夹中创建一个查询索引,该索引将索引后端中的所有文档。
- 使用指向您的SharePoint站点或Google驱动器的装入点设置您的
fstab.yaml后,转到根文件夹。 - 根据您的后端,为SharePoint创建名为
query-index.xlsx的工作簿或为Google驱动器创建名为query-index的电子表格。 - 在该电子表格或工作簿中,创建一个名为
raw_index的工作表。
设置要添加到索引的属性
- 在
query-index文档中添加标题行,并在第一列中添加path作为标题名称。 - 在标题行的以下列中,添加您需要从渲染的HTML页面中提取的所有其他属性。
在Google Drive中的以下示例中,提取的字段为title、image、description和lastModified。
页面在发布时会编入索引。 要从索引中删除页面,必须取消发布这些页面。
对于没有自定义索引定义的简单方案,元数据属性设置为robots的页面将自动被AEM从索引中忽略。 noindex(这里有一些特殊场景,有关更多详细信息,请参阅机器人特殊场景部分。)
下表总结了可用的属性,以及这些属性在HTML页面中的提取位置。
对于添加的其他每个标头,索引器将尝试查找具有相应名称的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,即您已定义 自定义索引定义。
推荐
- 如果您没有自定义索引定义,建议 不要 向索引表添加
robots列,除非您需要这样做。
将robots列添加到索引工作表将导致AEM对页面编制索引,即使它可能将robots元数据设置为noindex.也是如此 - 如果您有自定义索引定义,则无论在页面元数据上将
robots设置为noindex,AEM都将对页面编制索引。 如果要防止出现这种情况,可以使用电子表格筛选器从索引中忽略将robots元数据设置为noindex的页面。 有关更多详细信息,请参阅下面标题为“强制执行noindex配置及自定义索引定义”的部分。
使用自定义索引定义强制实施“noindex”配置
如果您在 helix-query.yaml中定义了自己的自定义索引定义,则将robots属性设置为noindex无法有效地阻止对页面进行索引。 要强制 noindex 配置存在这种情况,请执行以下操作:
- 在
query-index.xlsx中创建名为“helix-default”的工作表。 之后,query-index.xlsx电子表格应有2张“raw_index和“helix-default。 ““raw_index”工作表包含所有原始索引数据。 - 修改您的自定义
helix-query.yaml(它必须位于项目的Github存储库中)并添加robots属性,以便为其编制索引。 - 现在,在
query-index.xlsx电子表格中设置“helix-default工作表以使用Excel公式自动填充,该公式可确保raw_index中将robots属性设置为noindex的所有行都不会复制到helix-default工作表。 可以使用类似于=FILTER(Table1,NOT(Table1[robots]="noindex"))的Excel公式来完成此操作 - 现在,您的helix-default工作表只包含来自
raw_index且未将robots属性设置为noindex的行。 - 确保发布要编制索引的页面。
- 现在,如果您照常获取索引,如:
https://<branch>--<repo>-<org>.hlx.page/query-index.json,则只会从helix-default工作表获取数据,即未明确阻止条目通过设置为noindex的robot属性进行索引的条目。