結果とページングの制限

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_pagingdriverに設定します。
  • CQL Solrクエリーで持続的にページネーションを有効にするには、dse.yamlcql_solr_query_paging: onを設定してノードを再起動します。
  • cql_solr_query_pagingdse.yamloffに設定されているときにページングを動的に有効にするには、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"}';