Luxorの運用

Luxorの仕組み

本章では、Luxor側のインデックス作成・更新処理及びLuxor検索処理の仕組みを説明します。
※製品それぞれのインデックス処理ロジックに関しては、下記のドキュメントより参照してください。

『INSUITE アプリケーション・アドミニストレーションガイド』
『Sm@rtDBのリファレンスガイド_検索編』

Luxorインデックス作成・更新処理の仕組み

Luxorのインデックス作成・更新処理では、異常発生時にインデックス作成リクエストがLuxorサーバに届かずインデックス作成失敗になってしまうことを防ぐため、インデックスキュー処理を導入しています。
Sm@rtDBは、すべてのインデックス作成リクエストがキューテーブルに溜まる処理になります。一方、INSUITE®は、送信失敗のインデックス作成リクエストのみをキューテーブルに保存され、キューに溜まったインデックスを定期的にLuxorに対して再リクエストする処理となります。処理流れの詳細については、次の「図 Luxorインデックス作成・更新処理の仕組み」を参照してください。

※ INSUITE®のインデックスキュー処理は、Ver.3.4.1以降のバージョンにて導入した処理となります。
※ 添付ファイル付きのデータに対しては、データ情報と添付ファイルの情報を別々に処理します。添付ファイル以外の情報を優先処理して、添付ファイル自体の処理では、Luxor側から製品への再リクエストが発生します。
※ Sm@rtDBのバインダ一覧で文書を対象に検索を実行した場合、本体付きの検索エンジンであるLuceneと比べると、Sm@rtDBのDBサーバのCPU使用率およびSm@rtDB APサーバと同DBサーバ間のネットワークトラフィック量が増えることが確認しました。詳しくは、『Luxor_Ver.1.3.0_サイジング基礎情報』を参照してください。

図 Luxorインデックス作成・更新処理の仕組み

Luxorインデックス作成・更新処理の仕組み

 B インデックス作成・更新リクエストの送信結果を戻す
 C Aから送信失敗のリクエストはインデックスキューに溜まる
 D&E 定時処理時、DBのインデックスキューに溜まっているリクエストを再送信する
 F インデックス作成・更新リクエストをすべてインデックスキューに溜まる
 G&H DBのインデックスキューに溜まっているリクエストを送信する

 ① A,E,HからのリクエストをLuxor側のインデックスキューに保存する
 ②&③ Luxorのインデックスキューにリクエストがあるかをチェックし、リクエストがあると判断した場合、インデックス作成を行う
 ④ インデックス作成失敗のデータをエラーキューに移動する

[制限事項]インデックス化対象の添付ファイルの種類

インデックス化対象となる添付ファイルの種類については、INSUITE®とSm@rtDBでは別々の処理となります。添付ファイルの種類については、インストレーションガイドの『APPENDIX』の記載よりINSUITE®及びSm@rtDBそれぞれの仕様を参照可能ですが、対象種類の詳細に関しての最新仕様については、INSUITE®及びSm@rtDBのドキュメントに準じます。

Luxor検索処理の仕組み

図 Luxor検索処理の仕組み

Luxor検索処理の仕組み

Luxorサーバの検索処理の流れは下記を参照してください。

  1. INSUITE®及びSm@rtDBより検索リクエストを送信する
  2. Luxorは、検索キーワードに基づき、インデックスを検索する
  3. 検索結果に対し、Luxorの閲覧権限チェックを行う
  4. Luxorの閲覧権限チェック結果をINSUITE®及びSm@rtDBに送信し、INSUITE®及びSm@rtDBの閲覧権限チェックを行う
  5. INSUITE®及びSm@rtDBの閲覧権限チェック結果をLuxorに戻す
  6. 権限チェック後の検索結果をINSUITE®及びSm@rtDBに戻す

注意
INSUITE®及びSm@rtDBに同梱されているテキスト抽出ソフトウェア「デ変研TFライブラリ」は、検索用のテキスト情報を抽出する処理を実行しています。全文検索インデックス作成時に文字列を抽出する処理において抽出対象とするファイルサイズ上限値(MAX_FILE_SIZE)を、INSUITE®のdoccat.confと、Sm@rtDBのdefault.xmlに対応しています。

インデックスサイズが、INSUITE®及びSm@rtDBそれぞれの上限値を超えると、インデックス処理を中止し、検索キーワードがヒットしないこととなります。上限値の変更方法に関しては、INSUITE®及びSm@rtDBのドキュメントにて記載しています。

  • 『INSUITE アプリケーション・アドミニストレーションガイド』のdoccat.conf
  • 『Sm@rtDB 運用ガイド』の「インデックス作成時の文字列抽出対象ファイルサイズ上限の設定」

検索画面

INSUITE®及びSm@rtDBので利用する検索画面を説明します。また、INSUITE®及びSm@rtDBのの検索可能な項目についても記載します。

INSUITE®の検索画面

INSUITE®の統合検索画面において、Sm@rtDBのデータを含めるすべての機能を検索することができます。検索画面は下記の「図 INSUITE®の統合検索」を参照してください。Sm@rtDBも検索対象にしている検索画面となります。詳細に関しては、hibiki.datの記載を参照してください。

注意
画像の赤枠で示した「統合検索」ボタン以外に、各機能のサイドメニューの「文字列検索」からも遷移可能です。例えば、ライブラリ機能の文字列検索から遷移する場合、ライブラリ機能がデフォルトとしてチェックされた状態になっています。

図 INSUITE®の統合検索

INSUITE®の統合検索

Sm@rtDBの検索画面

Sm@rtDBでは、バインダ、文書、アプリ、プロセス機能の関連情報を統合検索することができます。検索画面は次の図を参照してください。下図の①を押下して開く画面にて、検索タブ②を押下すると、Sm@rtDBの検索画面を開けます。

図 Sm@rtDBの検索画面

Sm@rtDBの検索画面

特定バインダのみを検索することも可能です。

図 Sm@rtDBのバインダ内検索

Sm@rtDBのバインダ内検索

検索対象の項目一覧

INSUITE®の検索対象は下記機能のデータとなります。検索対象それぞれの検索可能な項目に関しては、機能によって異なる可能性があります。

  • 連絡掲示板
  • スケジュール
  • 施設·設備予約
  • メモ
  • レポート
  • タスクリスト
  • ワークフロー
  • スマートページ
  • ライブラリ
  • ファイル共有
  • 連絡·通知
  • メーリングリスト

Sm@rtDBの検索対象は下記機能のデータとなります。対象機能と検索可能な項目に関しては、Sm@rtDBの『リファレンスガイド_検索編』より参照可能です。

  • キャビネット/バインダ
  • 文書
  • アプリ
  • プロセス

注意
検索対象の閲覧権限に関しては、INSUITE®及びSm@rtDBの処理によって制御されます。INSUITE®の閲覧権限に関しては、現状、検索対象の閲覧権限に関する記載は公開されたものがありません。Sm@rtDBの閲覧権限に関しては、『Sm@rtDBのリファレンスガイド_検索編』を参照してください。

検索画面に関連するQ&A

Q:INSUITE®またはSm@rtDBの統合検索画面で検索できないまたは検索結果が正しくない。

A:エラーが発生している場合、「各種ログの出力原因·出力例·対処法」を参照して、各種ログを確認してください。また、INSUITE®とSm@rtDBの設定を見直してください。

Q:Luxorの問題を調査する際にどんな情報が必要ですか?

A:調査する際、以下の設定ファイルおよびログ一式が必要になります。

/var/log/solr/solr.log
/var/log/solr/luxor.log
/root/luxor.1.3.X/setup.conf(Xは利用バージョンに変更してください。)
インストールチェックが失敗している場合、/root/luxor.1.3.X/installCheck.log(Xは利用バージョンに変更してください)
その他、手動で変更したファイル
INSUITE®のシステムチェックリスト
INSUITE®全APサーバの/home/DreamArts/logs/luxor/配下のログファイル
Sm@rtDB全APサーバの/var/log/hibiki配下のログファイル
事象発生時点の/usr/local/solr/tomcat/logs/catalina.outファイル

Luxor管理画面の利用

Luxor管理画面』の記載より参照してください。

Luxor設定ファイル変更方法

インストール後に設定変更を行う場合は、Ver.1.3.8モジュールを例に説明します。
※Luxor設定ファイルの変更する際、INSUITE®(V3.4.1以降)とSm@rtDBのサービス停止は不要です。Luxorサービス停止していても、インデックス作成のリクエストはDBのキューテーブルに保持され、Luxorサーバを再起動後にDBサーバのqueueテーブルの情報からインデックスの作成を再開します。

  1. 設定ファイルを開きます。

    # cd /root/luxor.1.3.8 # vi setup.conf

  2. 設定ファイル』の記載を参照して設定値を変更します。

  3. 変更したファイルを反映します。
  # sudo sh setup.sh -refrectConf<br>
  # sudo /etc/init.d/solrTomcat restart

※Luxor Ver1.1.0以降では、"-refrectConf"、"-homeOverwrite"オプションを実行した場合、その時点のsetup.confが自動的にバックアップされます。バックアップされたsetup.conf は、/var/solr/install/confディレクトリ配下において、setup.conf.[YYYYMMDD_HHMM]というファイル名で保存されます。設定ファイルsetup.confを変更する際、solrTomcatの再起動をお薦めします。

Luxorのバックアップ方法

Luxorのインデックスをバックアップする際、データの整合性のため、solrTomcatサービスを停止する必要があります。バックアップ対象ディレクトリについては、次の表を参照してください。デフォルト設定の場合、Luxorサーバの/var/solr配下を全て取得します。

整合性を取るためには、INSUITE®およびSm@rtDBの関連ファイルのバックアップと同期を取る必要があります。リカバリの際、同期の取れているバックアップ全てを戻してください。/var/solr配下は次のディレクトリ・ファイルが含まれます。

第一階層 第二階層 用途
queue キュー用ディレクトリ(ルート)
(※全コアに対する更新リクエスト)
insuite INSUITE®コア用ディレクトリ(ルート)
admin_guide コア用ディレクトリ(管理者オンラインガイド)
board コア用ディレクトリ(連絡掲示板)
custom コア用ディレクトリ(カスタム)
fa_schedule コア用ディレクトリ(施設予約)
guide コア用ディレクトリ(オンラインガイド)
history-library コア用ディレクトリ(履歴-ライブラリ)
history-share コア用ディレクトリ(履歴-ファイル共有)
insuite-test コア用ディレクトリ(インストールテスト用)
library コア用ディレクトリ(ライブラリ)
ml コア用ディレクトリ(メーリングリスト)
ns-board コア用ディレクトリ(連絡・通知)
reminder コア用ディレクトリ(メモ)
report コア用ディレクトリ(レポート)
schedule コア用ディレクトリ(スケジュール)
share コア用ディレクトリ(ファイル共有)
smart コア用ディレクトリ(スマートページ)
todo コア用ディレクトリ(タスクリスト)
wflow コア用ディレクトリ(ワークフロー)
smartdb Sm@rtDBコア用ディレクトリ(ルート)
binder コア用ディレクトリ(キャビネット/バインダ)
document コア用ディレクトリ(文書)
document_item コア用ディレクトリ(文書の部品)
imp コア用ディレクトリ(アプリ)
process コア用ディレクトリ(プロセス進行情報)
common_schema.xml i 共通スキーマ定義ファイル
filetype.txt ファイル拡張子-アイコンマッピング定義ファイル
luxor.xml luxor設定ファイル
solr.xml solr設定ファイル
log4j.xml ログ出力形式や出力レベルを変更するファイル
install conf 設定ファイルのバックアップ用ディレクトリ
queue_error 作成失敗のキュー用ディレクトリ
failover 冗長化構成機能用ディレクトリ

インデックスの再作成

Luxorのインデックス再作成を実施するには、INSUITE®とSm@rtDBにてそれぞれ用意しているコマンドを利用します。インデックス再作成は、元データと検索インデックス間を同期させる作業となり、不整合による検索結果の不正を解消することが出来ます。インデックス再作成の実施を必要する場面として、主に下記となります。

重要
インデックス再作成は長時間を要すため、コマンド実施する前に必ず実施時間、実施手順、注意点などを確認の上、実施してください。

インデックス再作成のパターン

検索エンジン切替えの場合
INSUITE®データとSm@rtDBデータの統合検索を実現できる「Luxor」検索エンジンは、INSUITE® Ver.3.1.0以降、Sm@rtDB Ver.3.2.0以降にて利用可能となります。Luxor以外の他のエンジン(※1)からLuxorへ乗換後、他のエンジンで利用したインデックスを再作成してからLuxorにて利用可能となります。

他の検索エンジンからLuxorへ移行する際はLuxorサーバのインストールが必要となります。移行時に検索インデックスは、インデックスコピーではなく、INSUITE®とSm@rtDBにてそれぞれ用意しているインデックス再作成コマンドにてインデックス作成を行うことが必須となります。

※1 他のエンジンとは:
  ・INSUITE®:Namazu
  ・Sm@rtDB:Lucene

検索インデックスの不整合が発生した場合
ネットワークの異常、ディスクの一時不況やLuxorサーバのダウンなどの原因により、INSUITE®、Sm@rtDBのリクエストが処理異常になり、検索インデックスが更新、削除されず、検索結果不正などの事象が発生します。

※検索インデックスの不整合では以下の三つのパターンがよく挙げられます。不整合が発生した場合、インデックスの再作成を行うことで、正しく同期した状態にすることが可能です。

・元データあり、インデックスなし
・元データあり、インデックスあり、ただ、内容不一致
・元データなし、インデックスあり(※)

※Luxor側にて、「元データなし、インデックスあり」の場合、元データを特定する機能はありません。インデックスのみを削除することはできません。
 Sm@rtDB Ver.4.0からは、検索インデックスと元データを完全一致にさせ、不要なインデックスを削除する「ゴミインデックス一括削除ツール」を用意しています。詳細については、『Sm@rtDB 運用ガイド』より参照してください。また、INSUITE Ver.4.0.3からは、ゴミインデックス削除ツールdelete_luxor_dirty_index.plも用意しています。詳細については、INSUITE Ver.4.0.3のリリースノートより参照してください。

Ver.1.3.6以降のバージョンにアップグレードする場合
通常Luxorのバージョンアップに際しては、インデックスの再作成は不要です。ただし、Ver.1.3.6にて検索精度向上機能に対応しています(デフォルト値はON)。Ver.1.3.5以前から、Ver.1.3.6以降のバージョンにアップロードする場合のみ、インデックスの再作成作業が必要となります。 アップグレード時、ご利用のバージョンとアップグレード対象バージョンの実際状況に応じて、インデックス再作成を実施するかをご判断ください。

サーバ乗換の場合
サーバ乗換時にも新しいサーバにてインデックスの再作成を実施することをお薦めします。コピーしてインデックス移転する運用では作業時間の節約ができ、理論上可能となりますが、運用上の制限事項を把握したうえ、移転後に十分な検証も必要となります。

制限
移行元、移行先サーバのLuxorバージョンやOSのbit数が同様でないといけないとの制限条件がかかりますので、バージョンアップに伴う乗換の場合、まず古いバージョンのデータをそのままコピーしてから、新しいバージョンにアップロードするのが正確な手順となりますので、ご注意ください。

再作成の手順

前項に記載したパターンにて、インデックスの再作成作業が必要になる場合は、下記の手順に沿って、インデックス再作成を実施してください。INSUITE®とSm@rtDBのインデックス再作成手順を説明します。

INSUITE®のインデックス再作成手順

INSUITE®のインデックス作成は、/home/DreamArts/cmd/配下のコマンドremake_luxor_indexを利用して行います。INSUITE®サーバとLuxorサーバ間が接続されている前提で、インデックス作成が可能となります。下記の二つのコマンドを別々に実施する必要があります。

INSUITE®のコンテンツデータ用コマンド:/home/DreamArts/cmd/remake_luxor_index
INSUITE®のオンラインガイド用コマンド:/home/DreamArts/bin/guide_index.pl

INSUITE® Ver.3.1.0より前のバージョンからアップグレードしてご利用する場合、全文検索で検索対象となるインデックスをLuxorサーバ上に作成する必要があります。INSUITE® Ver.3.1.0から初めてご利用する場合は、Luxor用インデックス作成は必要ありません。ただし、オンラインガイドのLuxor用インデックス作成は必要です。

[1] 始める前に
INSUITE®上では、スケジュール、ライブラリ、電子メールなど、数多くの機能があり、データ量が非常に膨大です。そのため、膨大なデータの検索インデックス作るには時間が掛かります。インデックス再作成を実施するために、インデックス件数の見積もり、作成所要時間の把握は非常に重要になります。見積もりの結果によって、インデックス作成を数回に分けて実施してください。

見積もりの際、コマンドremake_luxor_indexの-infoオプションを利用します。見積の手順例は下記:

  • インデックス件数を計測する
  • 単位時間当たりの処理件数を計測する
  • インデックス作成時間を見積る

[2] インデックス再作成手順
メンテナンスモードにする前提で、インデックス再作成の実施手順を説明します。

メンテナンスモードへの切替
「メンテナンスモード」に切り替え、一般ユーザがINSUITE®サーバへの新規・更新・削除をさせない状態にします。

[注意]サービスを停止しないでください。添付ファイルなどのインデックス作成時にINSUITE®やSm@rtDBサーバとの通信が必要となります。

コマンドの実施
『INSUITE®アプリケーション・アドミニストレーション・ガイド』を参照してください。

[注意1]「サービス運用停止する」と「サービス運用停止しない」場合の実施手順はやや異なります。詳細の流れについては下記を参照してください。

  • INSUITE®の運用を一時停止して、インデックス再作成する。

    step1 メンテナンスモードへの切替え
    step2 インデックス再作成
    step3 再作成完了を確認する
    step4 通常モードへの切替え

  • INSUITE®を運用しながら、インデックス再作成する。

    step1 インデックス作成時間の見積り
    step2 インデックス再作成
    step3 最新追加、更新されたデータのインデックス作成(※注意)
    step4 再作成完了を確認する

※ サービス運用を制限せず、インデックス作成することは元データと検索インデックスの不整合を発生させるリスクがあります。特に削除操作はインデックス不整合の可能性が高いため、注意してください。
※ 管理サーバにLuxorサーバをインストールしている場合、CSV連携やインデックス更新バッチが実行されない時間帯(夜間など)を選んで実施してください。バッチ処理とインデックス作成処理が重複した場合、予定時間内に処理が完了できない恐れがあります。

[注意2] ゴミインデックスに関して、次の注意事項を説明します。

インデックスの再作成は元データに基づいて再作成しています。データ不整合により、元データが存在していない場合、該当データへのインデックスは作成しません。該当データのインデックスはそのまま不要なものとして残され、ゴミインデックスになります。INSUITE®のインデックス作成の内部処理において、ゴミインデックスを個別削除する方法は現状ありません。操作上の留意点を予め確認ください。 ゴミインデックスが残っている場合、ユーザの検索キーワードによっては検索結果として表示される場合があります。ただ、実際に開こうとすると、元データが存在しないため、データが開けない事象が発生します。

Sm@rtDBのインデックス再作成手順

Sm@rtDBのインデックス再作成は、Sm@rtDB Toolのコマンドを利用します。Sm@rtDBのインデックス再作成では、検索インデックスを一括削除してから再作成するとの内部処理であり、インデックス再作成完了後、不要なインデックスは残りません。

[1] 始める前に

  • [1-1] Sm@rtDB Toolが利用可能なSm@rtDBのAPサーバを用意

Sm@rtDBのインデックス作成・削除は、Sm@rtDB Toolのコマンドを利用して行います。Sm@rtDB Ver.2.0.1以降、インストーラによって自動的に関連ファイルが/home/hibiki/bin配下に配置されます。Sm@rtDB Toolの運用方法に関しては、『Sm@rtDB_運用ガイド』を参照してください。

  • [1-2] Sm@rtDBのAPサーバにて、Luxorに関わる設定ファイル(full_text_search.xml)を記載

Sm@rtDB Toolでは、Luxorのインデックス作成、削除コマンドを用意しています。コマンドを実行するには、/etc/hibiki/full_text_search.xmlにてLuxorサーバへの接続情報やツールのオプションを設定する必要となります。

  • [1-3] インデックス件数の見積もり

reindexコマンドの[-countOnly]オプションを使って、インデックス件数を見積もり、インデックス再作成の所要時間を把握することが可能です。詳細については、『Sm@rtDB_運用ガイド』の「Luxorインデックス作成・削除」を参照してください。サイジングの詳細については、『Luxor_Ver.1.3.0_サイジング基礎情報』を参照してください。

※ Sm@rtDBのインデックス再作成の内部処理は、INSUITE®とは異なり、一般ユーザによるデータ新規登録や更新、削除操作はインデックス作成に影響を与えないため、サービス運用の停止は不要です。

[2] インデックス再作成手順

Sm@rtDBのインデックス作成・削除は、Sm@rtDB Toolの下記コマンドを利用して行います。使用方法の詳細に関しては、『Sm@rtDB_運用ガイド』を参照してください。

・インデックスの作成:reindexコマンド
・インデックスの削除:delindexコマンド
・インデックスの継続作成:reindex continueコマンド

※ Sm@rtDBのインデックス再作成において、検索インデックスの事前バックアップも不要となります。

インデックス再作成の完了確認

上記 INSUITE®とSm@rtDBのインデックス再作成コマンドの実行が終わっても、Luxorサーバでのインデックス登録作業はまだ完了していない場合があります。インデックス作成作業が終わったことを確認するには、以下のURLからLuxorサーバの管理画面にアクセスし、画面の"Queue Size"が"0"になっているかを確認してください。

http://LuxorサーバのIPアドレス:10080/solr/About

※インデックス作成を行った機能の"Size"列の値はLuxorサーバにて登録されているインデックスの数となります。Luxor全文検索では、1件のデータの中に添付ファイルが1個あれば、2件のインデックスが作成されますので、件数の一致だけでは作成完了の確認はできません。
※"Queue Size"が"0"にならなくても、続けて他の機能インデックス再作成が実行可能です。

インデックス再作成に関連するQ&A

Q:インデックス再作成途中にて、再作成を停止する方法はありますか?

A:製品標準機能において、インデックス再作成途中による停止方法は提供していません。途中で何等かの原因により停止する場合、最初から全てやり直しが必要となります。

Q:再作成の完了を確認する方法

A:Luxor管理画面にて確認出来ます。詳しくは、「インデックス再作成の完了確認」を参照してください。

Q:再作成が失敗した場合、全て最初からやり直しが必要ですか?

A:はい。ご認識の通りです。最初から全てやり直しが必要となります。

Q:特定ファイルのインデックスが作成されたかを確認する方法

A:『運用ガイド』の「Solr管理画面」にて、インデックス検索の関連記載を参照してください。

検索エンジンの移行

本ドキュメント最後のAPPENDIXにて、「検索エンジンの切替え」としてそれぞれの古いエンジンからの移行について詳しく記載しています。古いエンジン利用のお客様がLuxorに移行する場合、そこの資料より参照してください。

  • LuceneからLuxorへの切り替える場合の参照資料(LuceneからLuxorへ切替の顧客向け)
  • NamazuからLuxorへの切り替える場合の参照資料(NamazuからLuxorへ切替の顧客向け)