結果とページングの制限

DSE Searchでネイティブ・ドライバーのページングとApache Solrのカーソルベースのページングを統合

DSE Searchでは、ネイティブ・ドライバーのページングとApache Solr™のカーソルベースのページングが統合されています。カーソルとも呼ばれるページネーションでは、カーソルを使用した結果のスキャンをサポートしています。Solrのページネーションの制限事項が適用されます。

注: ページネーションを有効にしてCQL Solrクエリーを使用する際、Solrではページネーションが構成されている場合にそのクエリー結果のキャッシュを使用できないため、パフォーマンスが低下することがあります。大きい結果セットでページネーションを行わないようにするには、CQL 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を設定してノードを再起動します。
    dse.yamlcql_solr_query_paging: offの場合にページネーションを動的に有効にするには、"paging":"driver"パラメーターを使用します。
    select id from wiki.solr where solr_query='{"q":"*", "sort":"id asc", "paging":"driver"}';
注: SearchAnalyticsノードは常にドライバー・ページング設定を使用します。「DSE AnalyticsとSearchの統合」を参照してください。

詳細については、ドライバーのドキュメントを参照してください。ソート句の使用は必須ではありません。ただし、ソート句を指定しない場合、ソートは定義されません。

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"}'; 
注: cqlsh PAGINGが有効な場合。
dse.yamlファイルの場所は、インストールのタイプによって異なります。

パッケージ・インストールInstaller-Servicesインストール

/etc/dse/dse.yaml

tarボール・インストールInstaller-No Servicesインストール

installation_location/resources/dse/conf/dse.yaml