制限付きクエリー・ルーティング

上級ユーザー向け:制限付きクエリー・ルーティングでは、よく実行するクエリーを1つのパーティションに制限することができます。

この機能は専門家のみを対象としており、慎重に使用する必要があります。

DSE Searchの制限付きクエリー・ルーティングは、よく実行するクエリーを1つのパーティションに制限できるデータ・モデルがあるアプリケーション向けです。
重要: route.partitionとroute.rangeは、クエリー対象のエンドポイントをフィルター処理します。
クエリー対象を1つのトークンまたはパーティションに制限するには、代わりにCQL solr_queryを使用してください。
例を次に示します。
SELECT aid, bkt, ts, rid, mt FROM tt.accounttransactions WHERE aid=1096 AND bkt=0 AND solr_query='
{"q":"*:*", "sort":"ts asc"}'
フィルター処理するには:
';"

パーティション・キー・ルーティング

パーティション・キーのリストに基づいて、一定の数のノードにルーティング・クエリーを制限することができます。また、クエリーを1つのトークン範囲に基づいて制限することもできます。ルーティングをパーティション・キーで指定するには、route.partitionクエリー・パラメーターを使用し、その値を1つ以上のパーティション・キーに設定します。DSE Searchは、指定されたパーティション・キーを持つノードのみを対象にクエリーを実行します。縦線のデリミターは複合キーのコンポーネントを区切ります。コンマのデリミターは各パーティション・キーを区切ります。

例を次に示します。

route.partition=k1c1|k1c2,k2c1|k2c2 . . .

実際のパーティション・キー値にデリミター文字が含まれている場合は、バックスラッシュ文字を使用してデリミターをエスケープします。

Solr HTTP APICQLクエリーをルーティングできます。この例は、複合パーティション・キーがあるテーブルでルート・クエリーを使用する方法を示しています。ここで、複合キーの構成要素は、"nike"と"2"です。

http://localhost:8983/solr/test.route/select?q=*:*&indent=true&shards.info=true&route.partition=nike|2,reebok|2

CQLでは、以下のようになります。

SELECT * FROM test.route WHERE solr_query='{"q" : "*:*", "route.partition" : ["nike|2","reebok|2"]}'

トークン範囲ルーティング

トークン範囲ルーティングは、クラスター・トークン配置について十分に理解している場合にのみ使用してください。トークン範囲別ルーティングよりもパーティション範囲別ルーティング・クエリーの方が簡潔なので、DataStaxではこちらを推奨しています。トークン範囲別ルーティングを指定するには、route.rangeクエリー・パラメーターを使用し、その値を、範囲を表すコンマで区切られた2つのトークン値に設定します。

例を次に示します。

route.range=t1,t2

DSE Searchでは、指定されたトークン範囲を持つノードだけを対象にクエリーを実行します。