簡易検索の実装は、Adobe Summit lab AEM Search Demystified の資料です。このページには、このラボの資料が含まれています。 ラボのガイド付きツアーについては、このページの「プレゼンテーション」の節でラボワークブックを参照してください。
以下の章のリンクは、初期パッケージがhttp://localhost:4502
で AEM オーサーにインストールされていることを前提としています
ラボでのディスカッションからの修正と説明および出席者からのフォローアップの質問への回答。
インデックスの再作成を停止するにはどうすればよいですか?
インデックスの再作成は、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-provides アナライザー設定要素のセットを公開します。
同じクエリでページとアセットを検索するにはどうすればよいですか?
指定したクエリと同じクエリで複数のノードタイプをクエリする機能が 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 プラグインを使用して、クエリと結果を調べます。
同じクエリで複数のパスを検索するにはどうすればよいですか?
指定したクエリと同じクエリで複数のパスにわたってクエリする機能が 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 プラグインを使用して、クエリと結果を調べます。