参照:その可能ベスパ - プロトン:カスタムバケット・クエリ
ID方式
Format: id:<namespace>:<document-type>:<key/value-pairs>:<user-specified>
http://docs.vespa.ai/documentation/content/buckets.html
http://docs.vespa.ai/documentation/content/idealstate.html
32 LSB文書ID形式で(N/gの選択を使用してユーザー定義バケットロジックにデータを構造化します)。
ただし、事前に決められた決定に基づいてクエリを特定のバケット範囲にルーティングする方法については、クエリロジックがあまり明確ではありません。
たとえば、範囲を圧縮するn(数値)を定義できる場合は、データを時間範囲(開始時間/終了時間)に分割することができます。そのようにタグ付けされたすべてのドキュメントは、同じバケットになります(設定されたドキュメント/サイズの数に応じて分割されます)。
ただし、このような方法で索引付けされたデータに対して検索クエリを作成するにはどうすればよいですか? 特定のバケットまたはバケットの範囲を選択するようにプロセッサに指示することは可能です(分散アルゴリズムによってバケットが移動した可能性があります)。
をルーティングクエリを制御することはできませんインデックスであるデフォルト・モードのために、モード=ストリーミングで構成されているタイプを文書化するために適用されますストリーミングモードは非常にコストがかかり、ステミングをサポートしません。 は、キーバリューのペアを使用する非常に大きなデータセット(100億以上のドキュメント)のインデックスを作成する際に、カスタムバケットの基準を設定することをお勧めします。 しかし、私はストリーミング検索を使用するように強制し、私が操作したいデータのサイズは高コストでうまくいかないでしょう。 カスタムバケット(ドキュメントをまとめて配置)を持つことができるようにインデックスを作成し、最適なパフォーマンスと最小サイズを導き出す提案はありますか? – shwetank
より具体的には、私はキー値のコロケーションスキームは行っていない場合、どのように私は潜在的に自分自身をインデックス作成中に定義できる網羅的なセットをターゲットにクエリ/検索を最適化するのですか? 時間範囲内で購入されたすべての動画広告(広告サーバー上で既知の成長するセット)です。 このデータを開いたバケッティングスキームに取り入れると、0の視界遅延を念頭に置いて最低限のコストをかけた検索となります。 – shwetank
ストリーミング検索では逆インデックスが回避されます。これは、各クエリで合計データの小さなチャンクのみを検索し、それらのチャンクを事前に決定することができることを意味します(通常は個人データ用に使用されます)。 – Jon