ページの先頭行へ戻る
Big Data Integration ServerV1.4.0 検索編アプリケーション開発ガイド
FUJITSU Software

K.3.4 ヒット件数の上限値を設定する

ヒット件数の上限値を設定することで、ソートまたは集計の応答性能を安定させることができます。ヒット件数が上限値を超えた場合には、ソートまたは集計を中断し検索条件に一致したヒット件数を通知します。

ヒット件数が上限値を超えないように検索式に条件を追加し、ソートまたは集計の検索範囲を絞り込みます。

ヒット件数の上限値を設定するには、setHitCountLimitメソッドを使用します。

ヒット件数の上限値を設定する場合の流れについて、以下の図に示します。


図K.6 ヒット件数の上限値を設定する場合の流れ


記述例

ヒット件数の上限値を設定する方法について、Shunsakuアクセスクラスの記述例を以下に示します。Shunsakuアクセスクラスのひな形については“K.3.2 件数に応じて検索した結果を取得する”を参照してください。


Shunsakuアクセスクラス

public void search(String keys) throws ShunException {
    :
  queryString = "/document/base/prefecture == ’ " + keys + "’";
  returnString = "/";
    :
  getPreparedStatement(queryString, returnString);
    :
  // ヒット件数の上限値を設定
  pstmt.setHitCountLimit(10000);                                                              (1)
}

private void getPreparedStatement(String queryString, String returnString) {
    :
  pstmt = con.preparedSearch(queryString, returnString);
    :
}

public Object[] getResultData(String sortString,
                              int position,
                              int requestCount)
                                          throws ShunException {
    :
  ShunResultSet resultSet = getResultSet(sortString, position, requestCount);
    :
  // ヒット件数が上限値を超えているかの確認
  if (resultSet.isHitCountLimitOver() ) {                                                     (2)
: } : Object[] resultData = parseResultSet(resultSet); : resultSet.close(); : } public ShunResultSet getResultSet(String sortString, int position, int requestCount) throws ShunException { if(!sortString.equals(SORT_NONE)) { pstmt.setSort(sortString); } pstmt.setRequest(position, requestCount); return pstmt.executeSearch(); }

(1) ヒット件数の上限値設定

setHitCountLimitメソッドのパラメタにヒット件数の上限値を設定します。

注意

ソート式が設定されていない場合には、executeSearchメソッド実行時にエラーとなります。


(2) ヒット件数が上限値を超えているの確認

isHitCountLimitOverメソッドでヒット件数が上限値を超えているかの確認をします。