cqtssetup.pl

全文検索のセットアップ タスクを実行します。

概要

サブミット可能なエンティティのファイルを生成します。
cqperl cqtssetup.pl –d dbname –s dbset –u user –p password –o Entity
ClearQuest 検索プロパティ ファイルを生成します。
cqperl cqtssetup.pl –d dbname –s dbset –u user –p password –o CQ [ -f entity_file ]
Solr 検索スキーマ ファイルを生成します。
cqperl cqtssetup.pl –d dbname –s dbset –u user –p password –o Solr [ -f entity_file ]

説明

cqtssetup.pl コマンドは、-o オプションで指定した操作モード (EntityCQ、または Solr) に従って、全文検索機能のセットアップ タスクを実行します。出力ファイルの名前は、操作モードに従い、次のようになります。
  • Entity-db_name-dbset_name.txt
  • CQ-db_name-dbset_name.xml
  • Solr-db_name-dbset_name.xml
cqtssetup.pl を使用する手順は、以下のとおりです。
  1. サブミット可能なすべてのエンティティのファイル (-o Entity) を生成します。これらのエンティティとそれらのフィールドが、検索対象になります。
  2. ClearQuest 検索プロパティ ファイルを生成します (-o CQ)。このファイルは、レコード抽出 (cqtsdbcrawler.pl) と検索機能により使用されます。 一般的に、-f オプションの引数として、cqtssetup.pl ... -o Entity の編集済み出力を指定します。
  3. Solr 検索スキーマ ファイルを生成します (-o Solr)。これは、エンティティがどのように索引付けされるかを指定します。 一般的に、-f オプションの引数として、cqtssetup.pl ... -o CQ の出力を指定します。

このコマンドは、 デフォルトの製品インストール ディレクトリにインストールされています。

オプションと引数

–d dbname
データベースの名前。
–s dbset
データベース セットの名前。
–u user
ユーザー名。
–p password
パスワード。
–o { Entity | CQ | Solr }
操作モード
  • Entity はエンティティ ファイルを作成します
  • CQ は検索プロパティ ファイルを作成します
  • Solr は Solr 検索スキーマ ファイルを作成します
–f entity_file
エンティティ ファイル。このオプションは、オプション CQ および Solr でのみ指定できます。 このオプションを省略すると、データベースで検出されたすべてのサブミット可能なエンティティ タイプ (およびそれらのフィールド) がコマンド引数として使用されます。

エンティティ ファイル

エンティティ ファイルは、-o Entity が操作モードとして指定されると生成されます。このファイルには、データベースで検出されたサブミット可能なエンティティが含まれます。 ClearQuest スキーマの開発者はこれらのエンティティに精通しているため、エンティティ ファイルに関する追加説明は必要ありません。

ClearQuest 検索プロパティ ファイル

ClearQuest 検索プロパティ ファイルは、-o CQ が操作モードとして指定されると生成されます。 このファイルには、複数のセクション (検索エンジン、データベース クローラー、データベース、およびエンティティ) が含まれます。 ClearQuest データベースのレプリカがある場合、各セクションの複数のインスタンスがあることになります。 各インスタンスは 1 つのレプリカに対応し、そのレプリカに固有の構成が必要となる場合があります。

検索エンジン セクション

このセクションは、ファイル CQ-db_name-dbset_name.xml の検索エンジン セクション中の XML タグを記述します。以下は、そのセクションの例です。
<!- Solr Search Engine default parameters -–>
<SearchEngine sitename="<local>" provider="Solr" version="1.2">
     <searchrequest retries="3"
          url=http://localhost:14080/solr/select/?q=%s&start=%d&rows=%d />
     <searchprop pagesize="25" cachesize="1000" />
</SearchEngine>
<SearchEngine>
検索エンジンとの通信に使用される構成を 指定します。レプリカなしのデータベースの場合、sitename="<local>" です。
データベースのレプリカがある場合、各レプリカに対してこのタグのインスタンスが 1 つあり、サイト名の値によってそのレプリカのサイトが指定されます。 全文検索機能は、サイト名の値を読み取ります。その値がサイトの名前と一致しなければ、検索機能は使用不可に設定されます。
このタグを修正する必要はありません。
<searchrequest>
検索エンジン サーバー URL およびそのサーバーと通信する方法 を指定します。このタグを修正する必要はありません。
<searchprop>
デフォルトのページ サイズおよびキャッシュ サイズを指定します。
  • pagesize は、戻るヒット数 (ページ当たり) を指定します。
  • cachesize は、読み取ってキャッシュに入れるヒット数を指定します。
このタグを修正する必要はありません。

データベース クローラー セクション

このセクションでは、 ファイル CQ-db_name-dbset_name.xml のデータベース クローラー セクション内の XML タグを説明します。 以下は、そのセクションの例です。

<!- ClearQuest Database Crawler default parameters -->
<CQDbCrawler sitename="<local>">
     <batch size="250" delay="5" directory="./batch-output"
          url=http://localhost/solr/update/" />
     <update size="250" delay="300" login_iteration="1" directory="./update-output"
          url=http://localhost/solr/update/" />
</CQDbCrawler>
<CQDbcrawler>
このタグの値は、バッチ モードと更新モードの両方の実行モードでのレコード抽出によって 読み取られます。これは、検索エンジンとの通信に使用する サイトの構成を指定します。レプリカなしのデータベースの場合、sitename="<local>" です。

レプリカが作成されたデータベースの 場合、各レプリカごとに別々の <CQDbCrawler> タグ があり、sitename の各インスタンス がレプリカのサイトを指定します。レプリカが作成されたデータベースの場合、 レコード抽出は、実行しているサイトの名前と一致する sitename 値 を探します。それが見つからない場合、レコード抽出の開始は失敗します。

<batch>、<update>
これらのタグの値は、バッチ モードおよび更新モードの cqtsdbcrawler コマンド によって読み取られます。これらの値は、ClearQuest 環境に合うように変更してください。
  • size は、一度に読み取られ、索引付けのために検索エンジンに 送信されるレコードの数を指定します。
  • delay は、レコード抽出が size で指定されたサイズのレコードの グループを 1 つ処理してから次のグループを処理するまでの間の待ち時間を秒数で指定します。 デフォルトの delay 値は 600 秒です。
  • login_iteration は、新しいログイン セッションが作成されるタイミングを指定します。 デフォルトでは、delay が発生するたびに新しいログイン セッションが作成されます。 有効な値は次のとおりです。
    -1
    一度ログインしたら、アプリケーションが実行されている限り、ログインしたままになります。
    0 | 1
    デフォルト動作。どちらの値を使用しても、結果は同じです。 delay 値に基づいてプロセスがウェイクアップするたびに、ログインしてログオフします。
    n
    delay 値に基づいてプロセスが n 回目にウェイクアップしたときに、ログオフしてログインします。
  • url は、索引にレコードを追加するために検索エンジンと通信する方法を指定します。
  • thread は、バッチ モードにのみ適用されます。 これは、クエリーを 実行するときに作成するスレッドの数を指定します。スレッド数が多いほど、レコード 抽出の処理は速くなります。許可される最大スレッド数は 10 です。10 を超える値は、10 に切り捨てられます。
  • localhost の参照があれば、以下のように必要に応じて更新します。
    • ClearQuest 検索サービス Solr が CM サーバーと同じホストで稼働している場合、localhost で差し支えありません。
    • 複数の CM サーバーと 1 つの ClearQuest 検索サービス ホストがあるロード バランシング環境または分散環境がある場合、 または複数のユーザー データベースが、異なるホスト上の ClearQuest 検索プロファイルで索引付けされている場合、 または ClearQuest MultiSite 構成で、共通の ClearQuest 検索サービスを使用してさまざまな ClearQuest MultiSite ロケーションの CM サーバーの要求を処理する場合には、localhost ではなく、 該当の ClearQuest 検索ホストの IP アドレスまたはホスト名 (URL で指定) を指定します。

login_iteration の値が 10 で、delay の値をデフォルトの 600 秒から 60 秒に変更した場合、 10 分ごとに新しいログイン セッションが作成され、新規または変更された ClearQuest レコードの検査が毎分行われます。 これにより、全文検索索引をより緊密に ClearQuest データベースと同期させることが可能になります。

データベース セクション

このセクションでは、 ファイル CQ-db_name-dbset_name.xml のデータベース セクション内の XML タグを説明します。 以下は、そのセクションの例です。

<!-- ClearQuest database and CM Server parameters -->
<CQDatabase sitename="<local>">
     <cmserver>http://localhost/TeamWeb/services/Team/</cmserver>
     <repository dbset="TextSearch" dbname="SAMPL"
          <username="admin" password="" keyfile=""></repository>
</CQDatabase>
<CQDatabase>
このタグの値は、バッチ モードと更新モードの両方の実行モードのレコード抽出で読み取られ、 それによって、レコードの抽出とデータベース更新のモニターを行うための ClearQuest データベース および変更管理 (CM) サーバーとの通信に使用する サイトの構成が判別されます。レプリカが作成されていないデータベースの場合、 sitename="<local>" です。

レプリカが作成されたデータベース の場合、各レプリカごとに 1 つずつの CQDatabase のインスタンスが あり、その sitename がレプリカのサイトを指定します。 レコード抽出は、実行しているサイトと一致する sitename 値を探します。 それが見つからない場合、レコード抽出の開始は失敗します。

このタグを修正する必要はありません。

<cmserver>
変更管理 (CM) サーバー URL を指定します。 このタグの値は必要に応じて変更してください。
  • ClearQuest 検索サービス Solr が CM サーバーと同じホストで稼働している場合、localhost で差し支えありません。
  • 複数の CM サーバーと 1 つの ClearQuest 検索サービス ホストがあるロード バランシング環境または分散環境がある場合、 または複数のユーザー データベースが、異なるホスト上の ClearQuest 検索プロファイルで索引付けされている場合、 または ClearQuest MultiSite 構成で、共通の ClearQuest 検索サービスを使用してさまざまな ClearQuest MultiSite ロケーションの CM サーバーの要求を処理する場合には、localhost ではなく、 該当の ClearQuest 検索ホストの IP アドレスまたはホスト名 (URL で指定) を指定します。
<repository>
データベース接続プロファイルを指定します。プロファイルに 応じて以下の値を変更してください。
  • dbset は、データベース セットの名前を指定します。
  • dbname は、データベースの名前を指定します。
  • username は、ClearQuest にログインするためにレコード抽出によって想定される ID を 指定します。
  • password は、cqtsdbcrawler.pl で生成される暗号化パスワードを指定します。
  • keyfile は、パスワードの復号に使用される鍵ファイルのフルパス名を指定します。
重要: usernamepassword、 および keyfile には、以下の有効な値を指定してください。
  • 実稼働環境では、暗号化されたパスワードと鍵ファイルを使用します。
  • プロトタイピングとテストのみにおいては、password エレメントをブランクのままにして keyfile を使用しなくても構いません。 ただし、実稼働環境ではこのシナリオを使用しないでください。

そうでないと、レコード抽出 cqdbtscrawler.pl をバッチ モードまたは更新モードで実行したときに、エラーが発生します。

エンティティ セクション

このセクションは、ファイル CQ-db_name-dbset_name.xml のエンティティ セクション中の XML タグを記述します。 以下は、そのセクションの例です。

<!- ClearQuest entity parameters -->
<CQEntity name="Customer" index="true">
     <field name="schema_mastership" disp_order="0" index="true" />
     <field name="customer_name" disp_order="1" index="true" />
     <field name="phone" disp_order="0" index="true" />
     <field name="company_name" disp_order="0" index="true" />
          .
          .
          .
</CQEntity>
<CQEntity>
このタグの値は、レコード抽出と検索機能の両方によって 読み取られます。ClearQuest データベースのレプリカがある場合、すべてのサイトにわたって CQEntity の インスタンスは一貫性がなければならず、そうでないと、索引付けは (従って検索結果も) レプリカ間で 一貫性のないものになってしまいます。
<field>
レコード抽出は、このタグの値を使用して、 以下のように、フィールドが索引付けされ、検索可能であるかどうかを判別します。
  • name は、フィールドの名前を指定します。
  • index は、フィールドが索引付けされるかどうかを指定します。 index="<true>" の場合、指定されたエンティティは索引付けされ、 検索可能です。
  • disp_order は、フィールドが検索結果に表示されるかどうかを次のように指定します。
    • 値 0 は、フィールドが表示されないことを意味します。
    • 値 1 は、フィールドが表示されることを意味します。エンティティでは 1 つのフィールドしか表示できません。
    重要: ClearQuest 全文検索機能を使用して索引付けされる すべてのレコード タイプでは、disp_order の値が 1 に指定されているフィールドは 1 つのみでなければなりません。 disp_order の値が 1 のフィールドが複数あると、結果は表示されません。

Solr 検索スキーマ ファイル

Solr 検索スキーマ ファイルは、-o Solr が操作モードとして指定されると生成されます。 -o CQ の場合と同様に、この操作モードでは、エンティティ モード (-o Entity) でこのコマンドを実行することにより生成されるエンティティ ファイルが入力に使用されます。Solr 検索スキーマ ファイルは編集しません。代わりに、そのセクションを Solr スキーマ ファイル schema.xml にコピーします。 (schema.xml については、Solr の資料を参照してください。)

Solr 検索スキーマ ファイルの最も重要なセクションは、検索エンジン セクションです。以下はその引用です。
<Solr>
	<fields>
		<field name="Operator_Value" type="text" indexed="true" stored="false" required="false" multivalued="true"></field>
		<field name="misc_info" type="text" indexed="true" stored="false" required="false" multivalued="true"></field>
...
		<field name="Resolution" type="text" indexed="true" stored="false" required="false" multivalued="false"></field>

...
		<field name="comments" type="text" indexed="true" stored="false" required="false" multivalued="true"></field>

...
		<field name="RATL_CQ_UNIQUE_FIELD" type="string" indexed="true" stored="true" required="true" multivalued="false"></field>
...
		<field name="RATL_CQ_ALL_FIELDS" type="text" indexed="true" stored="false" required="false" multivalued="true"></field>
	</fields>
</Solr>
<uniqueKey>RATL_CQ_UNIQUE_FIELD</uniqueKey>
<defaultSearchField>RATL_CQ_ALL_FIELDS</defaultSearchField>
<copyField source="Operator_Value" dest="RATL_CQ_ALL_FIELDS"></copyField>
<copyField source="misc_info" dest="RATL_CQ_ALL_FIELDS"></copyField>
...
<copyField source="Resolution" dest="RATL_CQ_ALL_FIELDS"></copyField>
...
<copyField source="Version" dest="RATL_CQ_ALL_FIELDS"></copyField>
...
<copyField source="comments" dest="RATL_CQ_ALL_FIELDS"></copyField>
...
<copyField source="Fax" dest="RATL_CQ_ALL_FIELDS"></copyField>
<field>
次のように、Solr にフィールドの索引付けに関する情報を指定します。
  • name は、フィールド名を指定します。
  • type は、データ タイプを指定します。
  • indexed は、フィールドが索引付けされるかどうかを指定します。
  • stored は、フィールド内のデータが Lucene 索引に保管されるかどうかを指定します。
  • required は、索引に追加されるように、ドキュメントがフィールド (およびそのデータ) を含む必要があるかどうかを指定します。
  • multivalued は、このフィールド名を持つ別の <field> タグが存在し得るかどうかを指定します。
このタグは修正しないでください。
<unique_key>
ドキュメント ID として使用される Lucene 文書定義のフィールドを指定します。 このフィールドは、Solr、Lucene、レコード抽出、および ClearQuest 検索機能によって読み取られ、ClearQuest レコードを一意的に識別します。このタグは修正しないでください。
<defaultSearchfield>
フィールド修飾子を使用せずに検索を実行する際に使用されるフィールドを指定します。 Solr および Lucene はこのフィールドを使用して、レコード内のすべてのフィールドを検索します。 このタグは修正しないでください。
<copyField>
フィールドのコンテンツが、別のフィールド (この例では <defaultSearchfield>) にコピーされるように指定します。このタグは修正しないでください。

  1. SAMPL データベース内のサブミット可能なすべてのエンティティのファイルを生成します。
    cqperl cqtssetup.pl -d SAMPL -s TextSearch -u admin -p "" -o Entity

    このコマンドにより、ファイル Entity-SAMPL-TextSearch.txt が生成されます。このファイルのコンテンツは、次のテキストのようになります。

    Email_Rule=ratl_mastership,ratl_keysite,record_type,dbid,is_active,version,lock_version,locked_by,name,…,…,…
    Customer=ratl_mastership,ratl_keysite,dbid,is_active,version,lock_version,locked_by,record_type,Name,Phone,Fax,Email,CallTrackingID,…,…,…
    Project=ratl_mastership,ratl_keysite,dbid,is_active,version,lock_version,locked_by,…,…,…
    Defect=ratl_mastership,record_type,dbid,is_active,id,state,version,lock_version,locked_by,isduplicate,unduplicate_state,Headline,Description,Priority,Severity,Submitter,…,…,…

    ファイルを編集して、検索可能にするレコード タイプとフィールドを指定します。 例えば、タイプが Defect であるレコードのみを検索可能にする場合、Defect= で始まる行以外の、ファイルにあるすべての行を削除します。 このレコード タイプで定義されるフィールドの一部のみを検索可能にする場合、検索可能にするフィールドのみを残して、残りをすべて削除します。 例えば、Headline、Description、および Severity のみを検索可能にする場合、編集したファイルは次のようになります。

    Defect=record_type,dbid,version,Headline,Description,Severity

    record_type、dbid、および version のフィールドは残すことに注意してください。全文検索の実装では、これらの 3 つのフィールドを索引付けする必要があります。

  2. 前のコマンドで生成されたエンティティ ファイル Entity-SAMPL-TextSearch.txt を指定して、検索プロパティ ファイルを生成します。
    cqperl cqtssetup.pl -d SAMPL -s TextSearch -u admin -p ""
    -o CQ -f Entity_SAMPLE_TextSearch.txt

    このコマンドにより、ファイル CQ-SAMPL-TextSearch.xml が生成されます。このファイルは、レコード抽出 (cqtsdbcrawler.pl) および検索機能の両方で使用されます。

  3. エンティティ ファイル Entity-SAMPL-TextSearch.txt を指定して、Solr 検索スキーマ ファイルを生成します。
    cqperl cqtssetup.pl -d SAMPL -s TextSearch -u admin -p ""
    -o Solr Entity-SAMPL-TextSearch.txt

    このコマンドにより、ファイル Solr-SAMPL-TextSearch.xml が生成されます。このファイルは編集しません。そのセクションを Solr ファイル schema.xml にコピーします。

  4. Solr スキーマ ファイル schema.xml の特定のセクションをファイル Solr-SAMPL-TextSearch.xml の対応するセクションに置き換えて、Solr スキーマ ファイルを更新します。
    1. schema.xml の <fields> セクションを Solr-SAMPL-TextSearch.xml の <fields> セクションに置き換えます。
    2. <copyfield> セクションを同じように置き換えます。
    3. <uniqueKey> セクションを同じように置き換えます。既存の schema.xml ファイルを使用して開始した場合は、このセクションはすでにあるはずです。
    4. <defaultSearchField> セクションを同じように置き換えます。既存の schema.xml ファイルを使用して開始した場合は、このセクションはすでにあるはずです。
  5. WAS を再始動して、行った変更を有効にします。
注: 独自の schema.xml を編集する場合は、<field name= ... の値を、使用しているデータベース スキーマの名前に変更します。ClearQuest MultiSite を使用する場合も、ローカル サイトの名前を指定します (例 <field name="Acme Defect Tracking at Madrid"...)。Solr 管理 Web ページにこの変更が反映されます。

関連項目

cqtsdbcrawler.plsetmasterpropertyfromfile


フィードバック