全文搜尋維護

維護全文搜尋需要一些不常用的作業,如:修復有問題的記錄、清除作業日誌檔、將索引最佳化、調整 Solr 效能,以及更新配置以將變更納入綱目中。

修復有問題的記錄

當記錄擷取程式以批次或更新模式執行時,有時可能會無法處理記錄。發生這個狀況時,記錄擷取程式會建立對應於失敗記錄的修復檔。修復檔會寫入 ClearQuest 搜尋內容檔 CQ-db_name-dbset_name.xml 所在的目錄,其通常是 Solr 起始目錄。請監視這個目錄以檢查失敗處理的情況,並以修復模式使用記錄擷取程式來處理有問題的記錄。請參閱 cqtsdbcrawler 參考說明以取得用法資訊。

清除作業日誌

依預設,使用者資料庫中不會發生清除作業日誌 (oplog)。當您實作 oplog 清除原則來將浪費的空間降至最低時, 請小心使用以避免過早移除 oplog。oplog 存在的時間應該夠長,以供更新模式記錄擷取程式處理。如果很長一段時間未執行更新模式記錄擷取程式, 當它回復時,其會從處理尚未處理的最舊更新 oplog 開始。

如果您正在執行 ClearQuest MultiSite,全文搜尋 oplog 清除原則不應比現有的 ClearQuest MultiSite oplog 清除原則還嚴苛。

請參閱關於 oplog 清除的 ClearQuest Multisite 說明,以取得詳細資料。

回到頂端

將索引最佳化

經過一段時間,當您新增、修改及刪除新的 ClearQuest 記錄時,Lucene 索引會分段,如此會降低效能。

如果要將索引最佳化,請完成下列步驟:
  1. 將目錄切換至 ClearQuest 起始目錄。
  2. 於命令提示字元,以最佳化模式執行記錄擷取程式:
    cqperl cqtsdbcrawler.pl -optimize CQ-db_name-dbset_name.xml -site site_name

如果您未執行 ClearQuest MultiSite,您可以省略 -site 選項。 請參閱 cqtsdbcrawler 參考說明以取得用法資訊。

回到頂端

調整 Solr 效能

Solr 搜尋引擎不應使 ClearQuest 的效能受到妨礙。不過,如果您如此懷疑, 請先依前一節所述,嘗試將 Lucene 索引最佳化。也請考量下列措施,將 Solr 效能最佳化:

  • 增加「Java 虛擬機器 (JVM)」的記憶體配置。 請不要以預設記憶體配置來啟動 Solr,而是配置 Xms512M 和 Xmx1024M。

    請注意,當您以批次模式執行記錄擷取程式,然後加以重設時,您可能需要暫時增加 JVM 記憶體配置。

  • 將 Solr 起始目錄移至快速輔助硬碟。 搜尋引擎會耗用大量硬碟、處理器和記憶體,特別是如果您有大型索引時更是如此。相較於使用標準 54,000 RPM 硬碟,如果將 Solr 起始目錄移至具有 10,000 RPM 和快速探查時間的快速輔助硬碟,Solr 效能會大幅提昇。即使使用與作業系統分割區區隔的分割區,也可以提昇效能。
  • 增加伺服器的實體記憶體、處理器數,以及時脈速度。
  • 調整 Solr 配置檔 solrconfig.xml 中的效能設定。 請參閱 Solr 網站,以取得詳細資料。
  • 減少要製作索引的記錄類型數和關聯的欄位。
  • 在專用伺服器上安裝 Solr。
  • 啟用 Solr 主要和從屬配置。 這項配置會耗用兩倍的 Lucene 索引預設配置磁碟空間, 但會提供穩定的效能,即使對索引發出大量需求亦然。
  • 請參考 Solr 網站,以取得其他效能調整要訣。

回到頂端

納入綱目變更

資料庫綱目的變更經常需要搜尋綱目對應的變更。 範例如下:
  • 新增實體。 如果新的實體是可提交的記錄類型,且您要利用 ClearQuest 全文搜尋使其可搜尋, 您必須更新 ClearQuest 搜尋內容檔 CQ-db_name-dbset_name.xml 和 Solr 綱目檔 schema.xml,來處理新的記錄類型。要執行這項作業,請重複下列您之前執行過的步驟:
    1. 建立及編輯實體檔。
    2. 建立及編輯 ClearQuest 搜尋內容檔。
    3. 建立 Solr 搜尋檔。
    4. 更新 Solr 綱目檔 schema.xml 來配置要製作索引的記錄,然後重新啟動 Solr。
    5. 執行 installutil setmasterpropertyfromfile 次指令,將 ClearQuest 搜尋內容檔 CQ-db_name-dbset_name.xml 上傳至使用者資料庫。

    更新模式記錄擷取程式下次製作索引時,即會使用更新過的 ClearQuest 搜尋內容檔。

  • 新增欄位至實體。 如果新增欄位的實體是可提交的記錄類型,且您要製作欄位的索引,請遵循剛剛針對新增實體所敘述的相同程序。
  • 重新命名實體。 如果您重新命名 ClearQuest 綱目中的實體,請遵循剛剛針對新增實體所敘述的相同程序。 此外,您還需要執行下列步驟:
    1. 重新製作已重新命名之記錄類型的索引:
      1. 建立新的 ClearQuest 搜尋內容檔,其中只含已重新命名的記錄類型。
      2. 以批次模式執行記錄擷取程式 (cqperl cqtsdbcrawler.pl -batch)。
    2. 發出下列 Solr 指令來刪除屬於舊實體名稱的所有記錄類型:
      Windows:
      1. cd %SOLR_HOME%\yourSchemaName\Solr\exampledocs\
      2. java -Ddata=args -jar post.jar "<delete><query>record_type:recordTypeName</query></delete>"
      UNIX 系統和 Linux:
      1. cd $SOLR_HOME/yourSchemaName/Solr/exampledocs/
      2. java -Ddata=args -jar post.jar "<delete><query>record_type:record_type</query></delete>"
  • 重新命名實體的欄位。如果您重新命名 ClearQuest 綱目中實體的欄位,請遵循剛剛針對重新命名實體所敘述的相同程序。

回到頂端

相關工作
建立索引的位置
建立及配置實體檔
建立及配置 ClearQuest 搜尋內容檔
建立 Solr 搜尋檔
配置 Solr 要製作索引的欄位
相關參考
cqtsdbcrawler.pl
setmasterpropertyfromfile
scruboplog

意見