インデックス作成
Adobe Experience Manager は、web サイトの特定のセクションにある、公開されたすべてのページのインデックスを保持する方法を提供します。これは通常、リストやフィードを構築し、ページやコンテンツフラグメントの検索やフィルタリングのユースケースを有効にするために使用されます。
AEMでは、このインデックスをスプレッドシートに保持し、JSON を使用してアクセスできます。 ドキュメントを参照してください スプレッドシートと JSON を参照してください。
初期クエリインデックスの設定
この節では、バックエンドのすべてのドキュメントのインデックスを作成するクエリインデックスをルートフォルダーに作成します。
- の設定後
fstab.yaml
SharePoint サイトまたはGoogle ドライブを指すマウントポイントで、ルートフォルダーに移動します。 - バックエンドに応じて、という名前のいずれかのワークブックを作成します。
query-index.xlsx
SharePointまたはという名前のスプレッドシートの場合query-index
(Google ドライブ用)。 - そのスプレッドシートまたはワークブックで、という名前のシートを作成します。
raw_index
.
インデックスに追加するプロパティの設定
- あなたの
query-index
ドキュメントにヘッダー行を追加し、最初の列にを追加しますpath
ヘッダー名として。 - ヘッダーラインの次の列に、レンダリングされたHTMLページから抽出する必要があるその他すべてのプロパティを追加します。
Google Drive での次の例では、抽出されたフィールドは次のとおりです title
, image
, description
、および lastModified
.
ページには、公開時にインデックスが付けられます。 インデックスからページを削除するには、非公開にする必要があります。
カスタムインデックス定義を使用しない単純なシナリオの場合、次のようなページになります robots
メタデータプロパティの設定 noindex
は、AEMによるインデックス作成から自動的に省略されます。 (ここには、いくつかの特別なシナリオがあります。詳しくは、セクションを参照してください。 ロボットの特殊シナリオ)に設定します。
次の表に、HTMLページで使用可能なプロパティとそのプロパティが抽出される場所をまとめます。
追加された他のすべてのヘッダーに対して、インデクサーは対応する名前を持つメタタグを検索しようとします。
インデックスのアクティブ化
インデックスをアクティブ化するには、サイドキックを使用してスプレッドシートをプレビューします。 これにより、インデックス設定が作成されます。
インデックスの確認
Admin Service には 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でインデックスを作成できないようにします。
- が追加されました
robots
列:query-index.xlsx
- を持っています
helix-query.yaml
github リポジトリで、つまり、 カスタムインデックス定義。
レコメンデーション
- カスタムインデックス定義がない場合 を使用する場合は、次をお勧めします。 ではない を追加
robots
必要な場合を除き、列をインデックスシートに追加します。
追加中robots
インデックスシートの列は、次の場合でも、AEMによってページのインデックスが作成されますrobots
メタデータの設定先noindex.
- カスタムインデックス定義がある場合、設定に関係なく、ページはAEMによってインデックス化されます
robots
対象:noindex
ページのメタデータ。 この問題が発生しないようにするには、スプレッドシートフィルターを使用して、以下を持つインデックスからページを削除しますrobots
メタデータの設定先noindex
. 詳しくは、「」の節を参照してください強制noindex
カスタムインデックス定義を使用した設定の下に、
カスタムインデックス定義を使用して「noindex」設定を強制する
で独自のカスタムインデックス定義を定義した場合 helix-query.yaml
、設定 robots
プロパティ先 noindex
は、ページのインデックス作成を防ぐ上で無効です。 実施するため noindex
このような場合に設定するには、次の手順を実行します。
- 「」という名前のシートを作成します。
helix-default
」を選択しますquery-index.xlsx
. この後、query-index.xlsx
スプレッドシートには 2 枚にする必要があります“raw_index
``と“helix-default
」と入力します。 この“raw_index
「シートには、生のインデックス付きデータがすべて含まれています。 - カスタムを変更
helix-query.yaml
(プロジェクトの Github リポジトリにある必要があります)次を追加しますrobots
インデックスが作成されるようにプロパティを設定します。 - 次の設定を行う
“helix-default
のシートquery-index.xlsx
すべての行が確実に表示される Excel 式を使用して自動的に入力されるスプレッドシートraw_index
次を持つrobots
プロパティの設定値noindex
、をにコピーしないでくださいhelix-default
シート。 これは、次のような Excel の式を使用して実行できます=FILTER(Table1,NOT(Table1[robots]="noindex"))
- これで、らせん既定シートには次の行のみが含まれます
raw_index
持っていないものrobots
プロパティの設定noindex
. - インデックスを作成するページを公開していることを確認してください。
- 次に、通常どおりインデックスを取得する場合は、次のようになります。
https://<branch>--<repo>-<org>.hlx.page/query-index.json
からデータを取得するだけですhelix-default
シート(を使用したインデックス作成が明示的に禁止されていないエントリ)robot
プロパティの設定値noindex
.