簡易検索の実装は、Adobe SummitラボAEM Search Demystifiedの資料です。 このページには、このラボの資料が含まれています。 実習のガイド付きツアーについては、このページの「プレゼンテーション」セクションでLabワークブックを参照してください。
以下のチャプターリンクは、初期パッケージが AEMオ ーサーインストールされていることを前提としています(http://localhost:4502
ラボでのディスカッションの修正と説明、参加者によるフォローアップ質問への回答。
インデックスの再作成を停止する方法
インデックス再作成は、AEM Webコンソール/JMXで利用できるIndexStats MBeanを使用して停止できます
abortAndPause()
を実行して、インデックス再作成を中止します。 これにより、resume()
が呼び出されるまで、インデックスがロックされ、さらにインデックスが再作成されます。resume()
を実行すると、インデックス作成プロセスが再開されます。oakインデックスは複数のテナントをサポートする方法を教えてください。
Oakは、コンテンツツリーを介したインデックスの配置をサポートし、これらのインデックスはそのサブツリー内でのみインデックスを作成します。 例えば、/content/site-a/oak:index/cqPageLucene
を作成して、/content/site-a
.の下にのみコンテンツのインデックスを作成できます。
同等の方法は、/oak:index
の下のインデックスでincludePaths
プロパティとqueryPaths
プロパティを使用することです。 次に例を示します。
/oak:index/siteAcqPageLucene@includePaths=/content/site-a
/oak:index/siteAcqPageLucene@queryPaths=/content/site-a
このアプローチの考慮事項は次のとおりです。
/oak:index/cqPageLucene
など)もデータにインデックスを付けるので、重複した取り込みとディスク使用のコストが発生します。利用可能なすべてのアナライザーのリストはどこにありますか?
Oakは、AEMで使用するLucene提供アナライザー設定要素のセットを公開します。
同じクエリでページとアセットを検索する方法は?
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 DebuggerおよびAEM Chromeプラグインを使用して、クエリと結果を調べます。
同じクエリで複数のパスを検索する方法は?
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 DebuggerおよびAEM Chromeプラグインを使用して、クエリと結果を調べます。