IBM Content Manager, バージョン 8.5           

パラメトリック検索とテキスト検索の組み合わせ: C++

C++ でのパラメトリック検索とテキスト検索の組み合わせは、次の 5 つのステップで行います。

  1. 照会オプションを指定します。 使用しようとしているデータを要求する際には、常にリトリーブ・オプションを指定して、 最適化を使用可能にしてください。 C++ では、DKNVPair[] オプション配列には、常に、照会操作が終了を検出するための特別な END エレメント がなければなりません。例えば、 2 つのオプションを指定したい場合は、オプションの配列には 3 つのエレメントが必要で、 最後のエレメントが END エレメントです。

    DB2 Text Search では C++ 検索コードはサポートされないため、このプロシージャーは Net Search Extender にのみ適用されます。

    DKNVPair* parms = new DKNVPair[3];
    //Allow a maximum of 5 items to be returned from the search 
    pparm[0].(DK_CM_PARM_MAX_RESULTS, DKString(“5”)); 
    //Specify what content is to be retrieved 
    DKRetrieveOptionsICM* dkRetrieveOptions = 
    				DKRetrieveOptionsICM::createInstance(dsICM); 
    dkRetrieveOptions->baseAttributes(TRUE); 
    pparm[1].set(DK_CM_PARM_RETRIEVE, dkRetrieveOptions); 
    pparm[2].set(DK_CM_PARM_END,(long) 0);
  2. 検索を実行します。 検索を実行する方法が 3 つあります。
    evaluate
    すべての結果を集合として戻します。小さなセットの場合に適しています。
    execute
    呼び出し元が結果に繰り返し使用する、結果のセット・カーソルを戻します。
    executeWithCallback
    結果のセットに繰り返されるスレッドを作成し、結果のそれぞれのブロック用にコールバック・オブジェクトを 呼び出します。呼び出し元は結果を入手するためにコールバック・オブジェクトを 使用します。

    以下の例では、5 つの結果のみが必要です。 よって、DKDatastoreICM.evaluate メソッドが使用されます。

    DKResults * resultsCollection = (DKResults *)(dkCollection *)
            dsICM->evaluate(queryString,DK_CM_XQPE_QL_TYPE, parms);
  3. 検索の結果が表示されます。
    // Create an iterator to go through Results collection.
    dkIterator* iter = resultsCollection->createIterator(); 
                   
    cout << "Results:" << endl;
    cout << "     - Total:  " << results->cardinality() << endl;
                    
    while(iter->more())
    {  
        //Each element in the returned array is an item (DDO)
        DKDDO* ddo = (DKDDO*) iter->next()->value();  
      cout << "     - Item ID:  " << ((DKPidICM*)ddo->getPidObject())
      ->getItemId() << "  (" <<     ((DKPidICM*)ddo->getPidObject())
      ->getObjectType() << ")" << endl;  
    }
  4. クリーンアップします。
    delete(iter);           
    delete[] parms;
    ....

完全なサンプルと追加資料については、IBMCMROOT/samples/cpp/icm にある SSearchICMAPI 実習サンプルを参照してください。



フィードバック

最終更新: 2013 年 12 月
dcmaq028.htm

© Copyright IBM Corp. 2013.