cqtssetup.pl

전체 텍스트 검색의 설정 태스크를 수행합니다.

요약

제출 가능한 엔티티 파일 생성:
cqperl cqtssetup.pl –s dbset –d dbname –u user –p password –o Entity
ClearQuest 검색 특성 파일 생성:
cqperl cqtssetup.pl –s dbset –d dbname –u user –p password –o CQ [ -f entity_file ]
Solr 스키마 파일 생성:
cqperl cqtssetup.pl –s dbset –d dbname –u user –p password –o Solr [ -f entity_file ]

설명

cqtssetup.pl 명령은 -o 옵션 Entity, CQ 또는 Solr을 사용하여 지정되는 오퍼레이션 모드에 따라 전체 텍스트 검색 기능의 설정 태스크를 수행합니다. 그 결과 오퍼레이션 모드에 따라 이름이 지정되는 파일이 생성됩니다.
  • Entity-dbset_name-db_name-TextSearch.txt
  • CQ-dbset_name-db_name-TextSearch.xml
  • Solr-dbset_name-db_name-TextSearch.xml
cqtssetup.pl 사용 단계는 다음과 같습니다.
  1. 모든 제출 가능 엔티티(-o Entity)의 파일을 생성합니다. 이들 엔티티와 해당 필드가 검색 후보입니다.
  2. 레코드 추출기(cqtsdbcrawler.pl) 및 검색 기능에서 사용하는 ClearQuest 검색 특성 파일(-o CQ)을 생성합니다. 보통은 cqtssetup.pl ... -o Entity의 편집된 출력을 -f 옵션에 대한 인수로 지정합니다.
  3. 엔티티가 색인화되는 방식을 지정하는 Solr 스키마(-o Solr)를 생성합니다. 보통은 cqtssetup.pl ... -o CQ의 출력을 -f 옵션에 대한 인수로 지정합니다.

이 명령은 기본 제품 설치 디렉토리에 설치됩니다.

옵션 및 인수

–s dbset
데이터베이스 세트의 이름.
–d dbname
데이터베이스의 이름.
–u user
사용자 이름.
–p password
비밀번호.
–o { Entity | CQ | Solr }
오퍼레이션 모드:
  • 엔티티가 엔티티 파일을 작성합니다.
  • CQ가 검색 특성 파일을 작성합니다.
  • Solr가 Solr 스키마 파일을 작성합니다.
–f entity_file
엔티티 파일. 이 옵션은 CQSolr 옵션을 통해서만 지정할 수 있습니다. 이 옵션이 누락된 경우 데이터베이스에서 발견된 모든 제출 가능 엔티티 유형(및 해당 필드)이 명령 인수로 사용됩니다.

엔티티 파일

오퍼레이션 모드로 -o Entity를 지정하는 경우 엔티티 파일이 생성됩니다. 이 파일에 데이터베이스에서 찾은 제출 가능 엔티티가 포함됩니다. 이들 엔티티는 ClearQuest 스키마의 개발자가 잘 알고 있는 것이므로 엔티티 파일에 대한 추가 설명은 하지 않습니다.

ClearQuest 검색 특성 파일

ClearQuest 검색 특성 파일은 -o CQ가 오퍼레이션 모드로 지정된 경우 생성됩니다. 이 파일에는 검색 엔진, 데이터베이스 크롤러, 데이터베이스 및 엔티티 등 여러 섹션이 있습니다. ClearQuest 데이터베이스가 복제되는 경우 각 섹션의 인스턴스도 여러 개 만들어집니다. 각 인스턴스는 복제본에 상응하는 것으로 복제본에 맞는 구성이 필요할 수 있습니다.

검색 엔진 섹션

이 섹션에서는 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>"이 지정됩니다.
데이터베이스가 복제되면 각 복제본마다 이 태그의 인스턴스가 생성되고 sitename의 값은 해당 복제본의 사이트를 지정합니다. 전체 텍스트 검색 기능이 sitename의 값을 읽습니다. 이 값이 사이트의 이름과 일치하지 않을 경우 검색 기능이 사용 불가능해집니다.
이 태그를 수정할 필요가 없습니다.
<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" directory=".update-output"
          url=http://localhost/solr/update/" />
</CQDbCrawler>
<CQDbcrawler>
이 태그의 값은 레코드 추출기가 일괄처리 모드 및 업데이트 모드로 실행되어 판독합니다. 검색 엔진과 통신하는 데 사용되는 사이트 구성을 지정합니다. 복제되지 않은 데이터베이스의 경우 sitename="<local>"이 지정됩니다.

복제된 데이터베이스의 경우 복제본 사이트를 지정하는 각 sitename 인스턴스와 함께 각 복제본에 대한 별도의 <CQDbCrawler> 태그가 있습니다. 복제된 데이터베이스의 경우, 레코드 추출기가 현재 실행되고 있는 사이트의 이름과 일치하는 sitename 값을 검색합니다. 값을 찾을 수 없는 경우 레코드 추출기가 시작되지 않습니다.

<batch>, <update>
이 태그의 값은 cqtsdbcrawler 명령이 일괄처리 및 업데이트 모드로 실행되어 판독합니다. ClearQuest 환경에 맞게 해당 값을 수정할 수 있습니다.
  • size는 색인화를 위해 레코드를 검색 엔진에 전송하기 전에 한 번에 읽을 수 있는 레코드 수를 지정합니다.
  • delay는 레코드 추출기가 size로 지정된 크기의 레코드 그룹을 처리하기 위해 대기하는 시간을 초 단위로 지정합니다.
  • URL은 검색 엔진과 통신하여 레코드를 색인에 추가하는 방법을 지정합니다.
  • thread는 일괄처리 모드에만 적용됩니다. 이 태그는 조회를 실행할 때 작성할 스레드 수를 지정합니다. 스레드 수가 많을수록 레코드 추출 속도가 빠릅니다. 허용되는 최대 스레드 수는 10입니다. 10보다 큰 값은 10으로 잘립니다.

데이터베이스 섹션

이 섹션에서는 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(Change Managment) Server와 통신하는 데 사용할 사이트 구성을 검색하여 레코드를 추출하고 데이터베이스의 업데이트를 모니터링합니다. 데이터베이스가 복제되지 않은 경우 sitename="<local>"이 지정됩니다.

복제된 데이터베이스의 경우 복제본 사이트를 지정하는 sitename과 함께 각 복제본에 대한 CQDatabase 인스턴스가 생성됩니다 레코드 추출기가 현재 실행되고 있는 사이트와 일치하는 sitename을 검색합니다. 값을 찾을 수 없는 경우 레코드 추출기가 시작되지 않습니다.

이 태그를 수정할 필요가 없습니다.

<cmserver>
Change Management Server(CMServer) URL을 지정합니다. 이 태그 값을 적절히 수정하십시오.
<repository>
데이터베이스 연결 프로파일을 지정합니다. 해당 프로파일에 따라 다음 값을 수정하십시오.
  • dbset - 데이터베이스 세트의 이름을 지정합니다.
  • dbname - 데이터베이스의 이름을 지정합니다.
  • username - ClearQuest에 로그인하기 위해 레코드 추출기에서 가정하는 ID를 지정합니다.
  • password는 cqtsdbcrawler.pl에 의해 생성되는 암호화된 비밀번호를 지정합니다.
  • keyfile은 비밀번호의 암호 해독에 사용되는 키 파일의 전체 경로 이름을 지정합니다.

엔티티 섹션

이 섹션에서는 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 값은 필드가 표시됨을 의미합니다. 단 엔티티의 한 필드만 표시할 수 있습니다. 2개 이상의 필드가 0이 아닌 값을 지정하는 경우 표시되는 필드에 대한 선택사항은 정의되지 않습니다.

Solr 스키마 파일

오퍼레이션 모드로 -o Solr을 지정하는 경우 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 -s TextSearch -d SAMPL -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은 유지시켜야 합니다. 이는 이들 세 필드가 색인화되는 전체 텍스트 검색 구현의 요구사항입니다.

  2. 이전 명령으로 생성된 Entity-SAMPL-TextSearch.txt 엔티티 파일을 지정하여 검색 특성 파일을 생성합니다.
    cqperl cqtssetup.pl -s TextSearch -d SAMPLE -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 -s TextSearch -d SAMPLE -u admin -p ""
    -o Solr Entity-SAMPL-TextSearch.txt

    이 명령은 Solr-SAMPL-TextSearch.xml 파일을 생성합니다. 이 파일은 편집하지 마십시오. 대신 이 파일의 섹션을 Solr 파일 schema.xml로 복사하십시오.

  4. 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 관리 웹 페이지에 이 변경사항이 반영됩니다.

참조

cqtsdbcrawler.pl, setmasterpropertyfromfile


피드백