11.3.2. Protobuf でエンコードされたエントリーのインデックス化


前項の説明どおりにクライアントを設定したら、サーバー側でキャッシュのインデックス設定を開始できます。インデックス の有効化と各種インデックス固有の設定は埋め込みモードと同じで、Red Hat Data Grid のクエリー に記載されています。

ただし、追加の設定ステップも含まれます。埋め込みモードでは、エントリーのクラスにさまざまな Hibernate Search アノテーションが存在するかどうかを分析することで、インデックスメタデータが Java リフレクションによって取得されますが、エントリーが protobuf エンコードされている場合は明らかに実行できません。サーバーは、クライアントと同じ記述子(.proto ファイル)から関連するメタデータを取得する必要があります。記述子は '___protobuf_metadata' という名前のサーバーの専用のキャッシュに保存されます。このキャッシュのキーと値はどちらもプレーンテキストの文字列です。そのため、スキーマの名前をキーとして使用し、スキーマファイル自体を値として使用して、このキャッシュで put 操作を実行するのと同じくらい簡単です。または、(cache-container=*:register-proto-schemas()操作経由)CLI、管理コンソール、または JMX 経由で ProtobufMetadataManager MBean を使用できます。セキュリティーが有効になっている場合、リモートプロトコル経由でスキーマキャッシュにアクセスするには、ユーザーが '___schema_manager' ロールに属している必要があります。

注記

インデックス化を有効にすると、インデックス化する必要のあるフィールドを正確に制御するために @Indexed および @Field protobuf スキーマ擬似アノテーションを使用しない限り、Protobuf でエンコードされたエントリーのすべてのフィールドに対してインデックスが有効になります。デフォルトの動作は、多くのフィールドを持つタイプを処理する場合に非常に効率的ではない可能性があるため、デフォルトのインデックス動作に依存する代わりに、インデックス化すべきフィールドを常に指定することが推奨されます。アノテーションのない protobuf メッセージタイプのインデックス動作も、スキーマファイルの最初に protobuf スキーマオプション 'indexed_by_default'false に設定して変更できます(デフォルト値は trueと見なされます)。

option indexed_by_default = false;  // This disables indexing of types that are not annotated for indexing
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る