問題タブ [jcr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
447 参照

jackrabbit - Jackrabbit Persistence Manager - externalBLOBs 属性の関連性

externalBLOBsJackrabbit の PersistenceManager クラスの属性の関連性は何ですか? org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManagerクラスを使用して、OracleでJackrabbit 1.6.4を実行しています。クラスタリングには、org.apache.jackrabbit.core.journal.OracleDatabaseJournalorg.apache.jackrabbit.core.data.FileDataStoreを共有ロケーションで使用しています。

クラスターは機能していますが、パフォーマンスを最適化する必要があります。

externalBLOBsこの設定で属性の値を変更する必要がありますか? デフォルト値は ですtrue

0 投票する
1 に答える
401 参照

osgi - Felix 環境から JCR API を使用して CRX リポジトリに接続できない

JCR API を使用して CRX リポジトリに接続しようとしています。http://wiki.apache.org/jackrabbit/RemoteAccessの指示に従いました。プレーンな Java クラスを作成し、次を使用して crx リポジトリにアクセスしようとすると、

それは完璧に機能します。バンドルとして作成して Felix にデプロイすると、機能しません。必要なすべての依存関係をそこに入れました。

0 投票する
0 に答える
118 参照

java - 大量の構成ファイルに JCR を使用する

私のプログラムは、プログラムの起動時にロードされる小さなシリアル化可能な構成ファイルを多数使用しています (約 10,000 個の 1 ~ 2K のバイナリ ファイル)。設定ファイルは、リモート マシンにバックアップされる zip ファイルに保存されます。

背景: プログラムが起動すると、リモート マシンから新しいコンテンツが存在する場合は、それを解凍します。多くの新しいコンテンツが利用可能になると、読み込みに 1 ~ 2 分かかることがあります。

JVisualVM でプログラム フローを確認したところ、ほとんどの時間が IO アクション (解凍、シリアライズ可能なファイルのロードなど) に費やされていることがわかりました。解凍せずに zip を操作し、不要なメタデータをカットするアイデアがいくつかあります。これらすべての変更により、私のテストでは 20 ~ 30 秒の読み込み時間が得られましたが、これは問題ありません。

質問:最近、JCR について読みましたが、これは私の状況にとって合理的な解決策のように思えます。一方で、私は独自のカスタム実装を使用するよりも、JCR のような広く受け入れられているソリューションを使用することを好みます。一方で、JCR 実装がカスタム実装 (まだ完全ではない) ほど効率的ではないのではないかと心配しています。このような状況で効率的な JCR 実装の推奨事項はありますか? ご意見をお待ちしております。

前もって感謝します。

0 投票する
1 に答える
187 参照

jcr - Modeshape 構成 - XML とプログラムの組み合わせ?

XML を使用して開発ボックスに Modeshape ワークスペースを構成しました。

ワークスペースを別のボリュームにマウントして Linux にデプロイします。

これを構成するために環境変数を使用することは可能ですか、それともプログラムによる構成に頼る必要がありますか? Modeshape チームが推奨するアプローチはありますか?

ありがとう

0 投票する
1 に答える
3358 参照

jcr - 新しいワークスペースを作成する

Modeshapeドキュメントのセクション7.1.6には、「アプリケーションは、標準のJCR2.0APIを使用してワークスペースを作成および削除できるようになりました」と記載されています。

JCR 2.0ドキュメントには、Workspace.createWorkspace(String name)を使用するように指示されています。

この投稿の下部にあるコードを使用して、リポジトリのこの部分を取得するにはどうすればよいですか?

また、すでにリポジトリにあるワークスペースのリストを取得するにはどうすればよいですか?

ありがとう

0 投票する
1 に答える
2093 参照

jackrabbit - Jackrabbit は、参加しているノード全体を検索します

Jackrabbit リポジトリのオブジェクトにタグを付けました (実際には Adob​​e/Day CQ の CRX ですが、これは Jackrabbit コードだと思います):

  • アセット: タグ = A、B
    • 子アセット データ 1: タグ = A、C、E
    • 子アセット データ 2: タグ = D、E

親アセットの一連のタグと 1 つの子の結合に対してクエリを実行したい。つまり、"BC" は親と子 1 にあるためアセットに一致しますが、"C D" は組み合わせがないため一致しません。これは、C と D が別々の子データ ノードに分割されているためです。

Jackrabbit でこれを行う方法はありますか? XPathクエリを書くことができます

ただし、結合された子アセットが同じであることを XPath が保証していないように見えるため、これは機能しません*。つまり、これは「どの子にも C/D がある」ことを意味し、1+ の子には C と 1+ があるため、私のアセットと一致します。子供にはDがあります。代わりに、JCR-SQL2を使用できます

しかしSELECT DISTINCT、JCR-SQL2 にはありません。代わりに「BE」を検索すると、このアセットが 2 回返されます。これは、asset+child1 と asset+child2 の両方に一致するためです。

どちらのクエリ結果も Java で後処理できます。つまり、最初のケースでは偽陽性の一致を除外するか、2 番目のケースでは重複した結果を除外しますが、これがページングのパフォーマンスにどのように影響するか心配です。より多くのノードをスキャンする必要があります。悪いノードを取り除く必要がなく、ページングの正しい結果サイズを計算するためにロットをスキャンする必要があります。これは、2 番目の SQL2 のケースでは安くなるはずです。なぜなら、検索が順序付けられている場合、ノード パスのみに基づいて重複を見つけることができ、すべての重複が連続しているため、特定のページの価値のあるデータを安価なスキャンだけで見つけることができるため、うまくいけば読み取らずに済むからです。各結果のノード全体ですが、単純なパスのみの場合でも、ページング カウントのすべての結果をスキャンするコストはわかりません。

私たちが検討したさらに別のオプションは、タグを単一のノードに非正規化することです。この場合、検索を正確に保つには、各子ノードに新しい combined_tags 属性を作成し、一連の子ノードに対してのみすべての検索を実行する必要があります。ただし、これには、同じアセットの下にある 2 つの子ノードを一致させると、明確な問題が残ります。

提案をありがとう。これはすでに大規模なインスタンスであり、さらにスケーリングする必要があります。ModeShape は JCR 実装であるという他の質問を見てきましたが、SELECT DISTINCTModeShape で CQ をホストすることが実際に可能である場合、そのためだけに ModeShape に切り替えることは最後の手段である必要があると思います。


ここで思いついたアイデアの 1 つは、アセット タグと子タグの各結合を計算し、タグを 1 つの文字列に結合してから、各値をアセットの多値プロパティとして書き込むことです。つまり、asset + child1 = "ABC E" です。アセット + child2 = "ABD E" であるため、次のようになります。

  • アセット: タグ = A、B; tagUnions = "ABC E", "ABD E"

タグを文字列に結合する固定順序 (アルファベット順など) を定義している限り、任意の組み合わせを検索できますtagUnions LIKE '%B%C%'(ただし、実際にはタグ間に適切な区切り記号を使用します)。これは私たちが見ることができる限り機能しますが、私はあまり好きではありません: アセット + 子ごとに多数のタグが存在する可能性があり、すべてのタグが 1 文字よりも長い名前を持つため、最終的LIKEにはすべてに対してクエリを実行する長い文字列になります。効率的にインデックスを作成できない可能性があります。

これに対するもう 1 つの方法は、ビットマスクを作成することです。A=1、B=2 などを定義して、ここに多値整数配列を格納し、ビットごとの比較を実行します。ただし、それはおそらく 64 の異なるタグに制限されており、1,000 以上あるので、これを行うことはできないと思います。

そのため、私はまだ、これに対するクリーンなデータベースのようなソリューションを探しています。あなたは私が立てた賞金を逃しましたが、まだダニ、投票、そして助けに対する感謝があります.

0 投票する
1 に答える
464 参照

java - XPathクエリを使用してJackrabbitのXMLコンテンツをどのように更新しますか?

Jackrabbit 2.4.0を使用していますが、以下を使用してインポートされたXMLの更新に問題があります。

XMLの更新を行う次のコードがあります。

以下をJackrabbitにインポートしたと仮定します/notes

XMLを更新する次のコードが機能しないのはなぜですか。

次のエラーが発生します。

ただし、次のものをインポートしています。

エントリが1つあります。

ID 123でメモを更新したいとしますが、XPathを使用してそれを行うにはどうすればよいですか?

よろしくお願いします!

0 投票する
4 に答える
1656 参照

jackrabbit - JCR は単一のファイルを作成し、異なるノードからリンクします

名前付きの画像 (A.gif など) の単一ファイル ノードを作成しようとしています。ここで、複数のノードでファイルを再利用したいと考えています。これを行う方法はありますか?回避策として、リポジトリ内の異なるパスのファイル ノードを再作成していますが、これによりファイルが重複します。

0 投票する
1 に答える
2274 参照

jackrabbit - JCR Jackrabbit のバージョン管理

こんにちは、ノードのバージョンを復元しようとしています。しかし、何かがうまくいかない:

その後、私は得る

0 投票する
4 に答える
5818 参照

jackrabbit - jackrabbit-standalone-2.4.0.jar Populate が機能しない

以下を使用してJackrabbitをダウンロードして起動しました:

populate.jsp を呼び出すと、次のエラーが発生します。

簡単セットアップ ウィザードのリンクをクリックすると、次のようになります。

この Jackrabbit ビルドに問題はありますか?