結果とページングの制限
DSE Searchでネイティブ・ドライバー・ページングとApache Solrのカーソルベースのページングを統合します。
dse.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse.yaml |
tarボール・インストール | installation_location/resources/dse/conf/dse.yaml |
DSE Searchでネイティブ・ドライバー・ページングとApache Solr™のカーソルベースのページングを統合します。カーソルとも呼ばれるページネーションでは、カーソルを使用した結果のスキャンをサポートしています。Solrページネーションの制限事項が適用されます。
CQL SELECTでのページングの使用
CQL SELECTのクエリーによって実行されるCQL SELECTでは、以下の場合、ディープ・ページングを使用します。
LIMITが指定されている場合はディープ・ページングが使用されず、LIMITはドライバーのフェッチ・サイズよりも小さくなります。
必須 | 以下のいずれかが適用されます |
---|---|
ドライバーがページングを使用する。 | LIMITが指定されていない。 |
ドライバーがページングを使用する。 | 返す行数は、ドライバーのページ・サイズよりも大きくなります。 |
CQL Solrクエリー(solr_query)でのページングの使用
注: ページネーションを有効にしてCQL Solrクエリーを使用する際、Solrではページネーションが構成されている場合にそのクエリー結果のキャッシュを使用できないため、パフォーマンスが低下することがあります。大きい結果セットでページネーションを行わないようにするには、CQL Solrクエリーの実行時にページネーションを無効にしてください。「ドライバー 」のマニュアルを参照してください。
次の行を dse.yamlページネーションを使用する場合、cql_solr_query_pagingオプションを指定します。
- ドライバーがデータベースと接続しており、検索インデックスの
solr_query
オプションを使用してCQL SELECTステートメントを実行する際に、デフォルトでドライバー・ページネーション設定を使用するには、cql_solr_query_pagingをdriver
に設定します。 - CQL Solrクエリーで持続的にページネーションを有効にするには、dse.yamlでcql_solr_query_paging: onを設定してノードを再起動します。
-
cql_solr_query_pagingがdse.yamlで
off
に設定されているときにページングを動的に有効にするには、Solrページング・パラメータをドライバー("paging":"driver"
)に設定します。例:SELECT id FROM wiki.solr WHERE solr_query= '{"q":"*", "sort":"id asc", "paging":"driver"}' ;
注: SearchAnalyticsノードは常にドライバーのページング設定を使用します。「DSE AnalyticsとSearchの統合」を参照してください。
CQLシェルのPAGINGコマンドとドライバーのマニュアルを参照してください。
注: cqlsh PAGINGが有効な場合、100行のチャンクでクエリー結果が表示され、続いてmoreプロンプトが表示されます。次のチャンクに移動するには、スペース・バーを押します。PAGING OFFが無効になっていると、結果全体が表示されます。
ソート句の使用は必須ではありません。ただし、ソート句を指定しない場合、ソートは定義されません。
CQL SELECTクエリーの例
SELECT * FROM wiki.solr WHERE id LIKE 'Journal%';
CQL Solrクエリー(solr_query)の例
Journal
という単語は本文やタイトルの約159のエントリーに含まれています。countを使用して一致する行数を特定します。SELECT count(*) FROM wiki.solr WHERE solr_query = 'Journal';countが返すのは1行なので、10行の制限には影響されません。
count
-------
159
(1 rows)
countを使用せずに(およびcql_solr_query_paging: off)同じクエリーを実行します。
SELECT id FROM wiki.solr WHERE solr_query = 'Journal';10行だけが返されます。
id
----------
23759487
23732986
23759527
23759551
23759455
23760810
23731949
23760697
23760871
23738270
(10 rows)
一致するすべてのIDを返すには、cql_solr_query_paging
設定をオーバーライドします。SELECT id FROM wiki.solr WHERE solr_query='{"q":"Journal", "paging":"driver"}';