예제 #1
0
  /**
   * セル配下のDavFile数を返却する.
   *
   * @param cellId 削除対象のセルID
   * @param unitUserName ユニットユーザ名
   * @return セル配下のDavFile数
   */
  public long getDavFileTotalCount(String cellId, String unitUserName) {
    // CellAccessorはadインデックスに対するアクセスのため、ユニットユーザ側のアクセッサを取得
    DataSourceAccessor accessor = EsModel.dsa(unitUserName);

    // Countのみを取得するためサイズを0で指定
    Map<String, Object> countQuery = getDavFileFilterQuery(cellId);
    countQuery.put("size", 0);

    DcSearchResponse response = accessor.searchForIndex(cellId, countQuery);
    return response.getHits().getAllPages();
  }
예제 #2
0
  /**
   * セル配下のDavFileID一覧を返却する.
   *
   * @param cellId 削除対象のセルID
   * @param unitUserName ユニットユーザ名
   * @param size 取得件数
   * @param from 取得開始位置
   * @return セル配下のDavFile数
   */
  public List<String> getDavFileIdList(String cellId, String unitUserName, int size, int from) {
    // CellAccessorはadインデックスに対するアクセスのため、ユニットユーザ側のアクセッサを取得
    DataSourceAccessor accessor = EsModel.dsa(unitUserName);

    Map<String, Object> searchQuery = getDavFileFilterQuery(cellId);
    searchQuery.put("size", size);
    searchQuery.put("from", from);

    DcSearchResponse response = accessor.searchForIndex(cellId, searchQuery);
    List<String> davFileIdList = new ArrayList<String>();
    for (DcSearchHit hit : response.getHits().getHits()) {
      davFileIdList.add(hit.getId());
    }
    return davFileIdList;
  }
예제 #3
0
  /**
   * セル配下のエンティティを一括削除する.
   *
   * @param cellId 削除対象のセルID
   * @param unitUserName ユニットユーザ名
   */
  public void cellBulkDeletion(String cellId, String unitUserName) {
    // AdsのCell配下のエンティティはバッチにて削除するので
    // Cell削除管理テーブルに削除対象のDB名とセルIDを追加する
    insertCellDeleteRecord(unitUserName, cellId);
    DataSourceAccessor accessor = EsModel.dsa(unitUserName);

    // セルIDを指定してelasticsearchからセル関連エンティティを一括削除する
    DcQueryBuilder matchQuery = DcQueryBuilders.matchQuery("c", cellId);
    try {
      accessor.deleteByQuery(cellId, matchQuery);
      log.info("KVS Deletion Success.");
    } catch (EsClientException e) {
      // 削除に失敗した場合はログを出力して処理を続行する
      log.warn(
          String.format(
              "Delete CellResource From KVS Failed. CellId:[%s], CellUnitUserName:[%s]",
              cellId, unitUserName),
          e);
    }
  }