2017-07-26 4 views
2

タッチUI & Sightyを使用してAEM 6.3を使用してサイトを開発しています。com.day.cq.wcm.foundation.Search apiを使用したAEMコンテンツ検索の問題

Googleのプロジェクトではタグベースの検索機能を実装したいので、タグを使用してウェブサイト全体を検索することもできます。の意味ですか?

com.day.cq.wcm.foundation.Search api beacuse結果リストの取得に役立つだけでなく、すべての要件を満たす結果セットを意味しました。

それだけで剛性の結果セットを提供してくれますし、あなたが機能をもしかしてを満たしていないので、私はクエリビルダ APIを使用していませんでした。

匿名ユーザーからサイトのURLにアクセスする(AEMにログインしない)とすぐに問題が発生します。 しかし、匿名ユーザーにetc/tagsパーミッションを与えるとすぐにうまく動作します。

しかし、私は匿名ユーザーに許可を与えたくありません。

これにはどのような解決策がありますか?

この問題の他の/より良いアプローチはありますか?

答えて

1

この機能を有効にするには、匿名ユーザーには、アクセス許可が必要です(etc/tags)。これは、クエリがタグを参照して同義語または 'あなたが意味する'ロジックを解明するためです。

しかし、私はあなたがおそらくこっちのセキュリティを懸念している匿名ユーザー

に権限を与えることを望んでいません。次の方法でこの問題を解決することができます

  • それは、匿名ユーザーからアクセスできないように匿名ユーザー
  • ブロックの/ etc /あなたのディスパッチャ上のタグ(または同等の層)への読み取り専用アクセス権を与えます。

匿名ユーザーのアクセス許可は、クエリがフィルタ処理を適切に行うためにのみ必要です。これはあなたのウェブサイトから/ etc /タグを公開する必要があるという意味ではありません。

+0

ありがとうございました。しかし、com.day.cq.wcm.foundation.Search api以外の 'あなたが意味する'機能のために使用できる他のAPIはありますか? –

+1

Search APIは特殊なクエリエンジンなので、必要に応じて独自のAPIを作成することができますが、通常はコンテンツタグ付けを使用してオークのインデックス定義に従います。私はより広いコミュニティが答えられるように新しい質問を開くことをお勧めします。 –

0

フィルタタグを使用して検索するので、TagManager APIを使用して、特定のタグでタグ付けされたすべてのリソースを取得できます。 例:RangeIterator find(String basePath、 String [] tagIDs)。

basePath - The starting node of the search 
tagIDs - a list of tag IDs or full paths to tags 

詳細はこちらからご覧ください。 https://docs.adobe.com/docs/en/cq/5-6-1/javadoc/com/day/cq/tagging/TagManager.html