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 옵션 Entity, CQ 또는 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. 레코드 추출기(cqtsdbcrawler.pl) 및 검색 기능에서 사용하는 ClearQuest 검색 특성 파일(-o CQ)을 생성합니다. 보통은 cqtssetup.pl ... -o Entity의 편집된 출력을 -f 옵션에 대한 인수로 지정합니다.
  3. 엔티티의 색인 방식을 지정하는 Solr 검색 스키마 파일(-o Solr)을 생성합니다. 보통은 cqtssetup.pl ... -o CQ의 출력을 -f 옵션에 대한 인수로 지정합니다.

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

옵션 및 인수

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

엔티티 파일

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

주의: 전체 텍스트 검색 기능이 작동하려면 최소한 다음 세 개의 필드를 색인화해야 합니다.
  • record_type
  • dbid
  • 버전
추가 필드를 색인화하면 색인 크기는 많이 증가하지 않고 전체 텍스트 검색 기능의 이점이 늘어납니다.

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" login_iteration="1" directory="./update-output"
          url=http://localhost/solr/update/" />
</CQDbCrawler>
<CQDbcrawler>
이 태그의 값은 레코드 추출기가 일괄처리 모드 및 업데이트 모드로 실행되어 판독합니다. 검색 엔진과 통신하는 데 사용하는 사이트 구성을 지정합니다. 복제되지 않은 데이터베이스의 경우 sitename="<local>"이 지정됩니다.

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

<batch>, <update>
이 태그의 값은 cqtsdbcrawler 명령이 일괄처리 및 업데이트 모드로 실행되어 판독합니다. ClearQuest 환경에 맞게 해당 값을 수정할 수 있습니다.
  • size는 색인화를 위해 레코드를 검색 엔진에 전송하기 전에 한 번에 읽을 수 있는 레코드 수를 지정합니다.
  • delay는 레코드 추출기가 size로 지정된 크기의 레코드 그룹을 처리하기 위해 대기하는 시간(초)을 지정합니다. 기본 delay 값은 600초입니다.
  • login_iteration은 새 로그인 세션이 작성되는 시기를 지정합니다. 기본적으로 새 로그인 세션은 delay가 발생할 때마다 작성됩니다. 올바른 값은 다음과 같습니다.
    -1
    한 번 로그인하여 애플리케이션이 실행되는 동안 로그인 상태로 있습니다.
    0 | 1
    기본 동작입니다. 어느 값을 사용해도 동일한 결과가 나타납니다. delay 값에 따라 프로세스가 시작될 때마다 로그인 및 로그오프합니다.
    n
    delay 값에 따라, 로그오프한 후 프로세스가 n 번째로 시작될 때 로그인합니다.
  • url은 검색 엔진과 통신하여 색인에 레코드를 추가하는 방법을 지정합니다.
  • thread는 일괄처리 모드에만 적용됩니다. 이 태그는 조회를 실행할 때 작성할 스레드 수를 지정합니다. 스레드 수가 많을수록 레코드 추출 속도가 빠릅니다. 허용되는 최대 스레드 수는 10입니다. 10보다 큰 값은 10으로 잘립니다.
  • 적절하게 localhost에 참조사항을 업데이트하십시오.
    • ClearQuest 검색 서비스 Solr이 CM 서버와 동일한 호스트에서 실행 중인 경우에는 localhost로 충분합니다.
    • 로드 밸런스 환경 또는 분배 환경이 있으며 해당 환경에 여러 개의 CM 서버 및 하나의 ClearQuest 검색 서비스 호스트가 있거나, 서로 다른 호스트에 상주하는 ClearQuest 검색 프로파일로 색인화된 여러 사용자 데이터베이스가 있거나, 공통 ClearQuest 검색 서비스를 사용하여 다양한 ClearQuest MultiSite 위치에서 CM 서버 관련 요청을 처리하도록 ClearQuest MultiSite가 구성된 경우 localhost 대신 적용 가능한 ClearQuest 검색 호스트의 IP 주소 또는 호스트 이름(URL로 지정됨)을 지정하십시오.

예제

login_iteration의 값이 10이고 delay의 값을 기본값 600초에서 60초로 변경한 경우 새 로그인 세션이 10분마다 작성되며 새 ClearQuest 레코드 또는 수정된 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(Change Managment) Server와 통신하는 데 사용할 사이트 구성을 검색하여 레코드를 추출하고 데이터베이스의 업데이트를 모니터링합니다. 데이터베이스가 복제되지 않은 경우 sitename="<local>"이 지정됩니다.

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

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

<cmserver>
CM(Change Management) Server URL을 지정합니다. 이 태그의 값을 적절히 수정하십시오.
  • ClearQuest 검색 서비스 Solr이 CM 서버와 동일한 호스트에서 실행 중인 경우에는 localhost로 충분합니다.
  • 로드 밸런스 환경 또는 분배 환경이 있으며 해당 환경에 여러 개의 CM 서버 및 하나의 ClearQuest 검색 서비스 호스트가 있거나, 서로 다른 호스트에 상주하는 ClearQuest 검색 프로파일로 색인화된 여러 사용자 데이터베이스가 있거나, 공통 ClearQuest 검색 서비스를 사용하여 다양한 ClearQuest MultiSite 위치에서 CM 서버 관련 요청을 처리하도록 ClearQuest MultiSite가 구성된 경우 localhost 대신 적용 가능한 ClearQuest 검색 호스트의 IP 주소 또는 호스트 이름(URL로 지정됨)을 지정하십시오.
<repository>
데이터베이스 연결 프로파일을 지정합니다. 해당 프로파일에 따라 다음 값을 수정하십시오.
  • dbset - 데이터베이스 세트의 이름을 지정합니다.
  • dbname - 데이터베이스의 이름을 지정합니다.
  • username - ClearQuest에 로그인하기 위해 레코드 추출기에서 가정하는 ID를 지정합니다.
  • password는 cqtsdbcrawler.pl에 의해 생성되는 암호화된 비밀번호를 지정합니다.
  • keyfile은 비밀번호의 암호 해독에 사용되는 키 파일의 전체 경로 이름을 지정합니다.
주의: username, passwordkeyfile에 올바른 값을 지정해야 합니다.
  • 프로덕션 환경에서는 암호화된 비밀번호 및 키 파일을 사용하십시오.
  • 프로토타입 작성 및 테스트용으로만 사용하기 위해 비밀번호 요소를 공백으로 두고 키 파일을 사용하도록 선택할 수 있습니다. 그러나 프로덕션 환경에서는 이 시나리오를 사용하지 마십시오.

그렇지 않으면 레코드 추출기 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 값은 필드가 표시됨을 의미합니다. 단 엔티티의 한 필드만 표시할 수 있습니다.
    주의: ClearQuest 전체 텍스트 검색 기능을 사용하여 색인화되는 모든 레코드 유형은 disp_order 값이 1로 지정된 하나의 필드만 가져야 합니다. 둘 이상의 필드가 disp_order 값이 1이면 결과가 표시되지 않습니다.

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 -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=로 시작하는 행을 제외한 파일의 모든 행을 삭제하십시오. 이 레코드 유형으로 정의되는 필드 중 일부만이 검색 가능한 경우 이들 필드만 유지하고 나머지는 삭제하십시오. 예를 들어 헤드라인, 설명 및 심각도만 검색 가능한 경우 편집된 파일은 다음과 같습니다.

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

    단, record_type, dbid 및 version은 유지시켜야 합니다. 이는 이들 세 필드가 색인화되는 전체 텍스트 검색 구현의 요구사항입니다.

  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-SAMPL-TextSearch.xml 파일의 해당 섹션으로 대체하여 Solr 스키마 파일 schema.xml을 업데이트합니다.
    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


피드백