シンプルな検索実装ガイド

簡易検索の実装は、 Adobe SummitラボAEM Search Demystified. このページには、この実習の資料が含まれています。 ラボのガイド付きツアーについては、このページの「プレゼンテーション」セクションで Lab ワークブックを参照してください。

検索アーキテクチャの概要

プレゼンテーション資料

ブックマーク

ツール

以下のチャプターリンクは、 初期パッケージ は、AEM オーサーインストール先のhttp://localhost:4502

パッケージ

初期パッケージ

チャプターパッケージ

参照されるマテリアル

修正とフォローアップ

研究室のディスカッションの修正と説明、参加者からのフォローアップ質問への回答。

  1. インデックスの再作成を停止する方法は?

    インデックスの再作成は、で使用できる IndexStats MBean を通じて停止できます。 AEM Web コンソール/JMX

  2. Oak インデックスは複数のテナントをどのようにサポートしますか?

    Oak は、コンテンツツリーからインデックスを配置することをサポートし、これらのインデックスはそのサブツリー内でのみインデックスを作成します。 例: /content/site-a/oak:index/cqPageLucene 次の場所にのみコンテンツをインデックス化するように作成できます。 /content/site-a.

    同等の方法は、 includePaths および queryPaths 下のインデックスのプロパティ /oak:index. 次に例を示します。

    • /oak:index/siteAcqPageLucene@includePaths=/content/site-a
    • /oak:index/siteAcqPageLucene@queryPaths=/content/site-a

    このアプローチの考慮事項は次のとおりです。

    • クエリは、インデックスのクエリパススコープと等しいパス制限を指定するか、その下位のパス制限を指定する必要があります。
    • 範囲を広げたインデックス ( 例: /oak:index/cqPageLucene) もデータのインデックスを作成するので、取り込みコストとディスク使用コストが重複します。
    • 重複した設定管理が必要な場合があります ( 例: 同じクエリセットを満たす必要がある場合は、複数のテナントインデックスに同じ indexRules を追加します )。
    • この方法は、カスタムサイト検索の AEM パブリッシュ層に最適です。AEM オーサーと同様に、クエリは様々なテナントのコンテンツツリーの上位で実行されるのが一般的です(OmniSearch など)。インデックス定義が異なると、パス制限に基づいてのみ異なる動作が生じます。
  3. 利用可能なすべてのアナライザーのリストはどこにありますか?

    Oak は、AEMで使用する Lucene 提供のアナライザ設定要素のセットを公開します。

  4. 同じクエリでページとアセットを検索する方法は?

    AEM 6.3 の新機能は、同じ指定されたクエリで複数のノードタイプに対してクエリを実行できる機能です。 次の QueryBuilder クエリ。 各「サブクエリ」は、独自のインデックスに解決できるので、この例では cq:Page サブクエリの解決先 /oak:index/cqPageLucene そして dam:Asset サブクエリの解決先 /oak:index/damAssetLucene.

    group.p.or=true
    group.1_group.type=cq:Page
    # add all page restrictions to this group
    group.2_group.type=dam:Asset
    # add all asset restrictions to this group
    

    結果は、次のクエリおよびクエリプランになります。

    QUERY:(//element(*, cq:Page) | //element(*, dam:Asset))
    
    PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) *:* */ union [dam:Asset] as [a] /* lucene:damAssetLucene(/oak:index/damAssetLucene) *:* */
    

    を使用してクエリと結果を調べる QueryBuilder デバッガー および AEM Chrome プラグイン.

  5. 同じクエリで複数のパスを検索する方法は?

    AEM 6.3 の新機能は、同じ指定されたクエリで複数のパスに対してクエリを実行する機能です。 次の QueryBuilder クエリ。 各「サブクエリ」は、独自のインデックスに解決される場合があることに注意してください。

    group.p.or=true
    group.1_group.type=cq:Page
    group.1_group.path=/content/docs/en/6-2
    # add all page restrictions to this group
    group.2_group.type=cq:Page
    group.2_group.path=/content/docs/en/6-3
    # add all asset restrictions to this group
    

    結果は、次のクエリおよびクエリプランになります。

    QUERY: (/jcr:root/content/docs/en/_x0036_-2//element(*, cq:Page) | /jcr:root/content/docs/en/_x0036_-3//element(*, cq:Page))
    
    PLAN: [cq:Page] as [a] /* traverse "/content/docs/en/6-2//*" where isdescendantnode([a], [/content/docs/en/6-2]) */ union [cq:Page] as [a] /* traverse "/content/docs/en/6-3//*" where isdescendantnode([a], [/content/docs/en/6-3]) */
    

    を使用してクエリと結果を調べる QueryBuilder デバッガー および AEM Chrome プラグイン.

このページ