Luxorインストールの前提条件

Luxorのサポート環境

ハードウェアスペック

ハードウェアの選定にあたっては、ユーザ数、同時処理リクエスト数、データの更新頻度、参照頻度、ネットワーク性能、サーバ構成等あらゆる要件を考慮する必要があります。インストールに必要なLuxorサーバの推奨スペックは下表の通りです。

表 推奨ハードウェアスペック

ハードウェア項目 推奨最小スペック
CPU デュアルコア 2.6GHzまたは同等のもの
メモリ 1 GB以上の空き容量(Java仮想マシンに割り当てる容量)
Luxorが使用するJVMヒープサイズを充分に確保しておくことで、Luxorがキャッシュを適切に利用できるようになる。一般的には、利用できるRAMサイズの1/3から1/2をLuxorのJVMヒープに設定することが推奨
インストールに必要なハードディスク 700MB程度の空き容量(プログラムだけの容量。インデックス領域は含まない)
インデックス領域としてローカルディスク、NFSサーバなどが使用できる

ソフトウェアスペック

Luxorを動作させるための必要なソフトウェアプラットフォーム及びソフトウェアを説明します。

表 サポートOS

サーバ OS
Luxorサーバ Red Hat Enterprise Linux 6.X
Red Hat Enterprise Linux 7.X
CentOS 6.X
CentOS 7.X

また、Luxorをインストールすると以下のソフトウェアが自動的にインストールされます。

表 自動追加するソフトウェア(例:Luxor Ver.2.0.3モジュール)

ソフトウェア バージョン インストール先
JRE 8 Update152 /usr/local/luxor/jre1.8.0_152
Tomcat 8(apache-tomcat-8.5.24) /usr/local/luxor/apache-tomcat-8.5.24

注意

1.使用環境で下記コマンドがあることを確認してください。
・/usr/bin/unzip

2.PCブラウザ上で動作するJavaのバージョンは、オラクル社及びブラウザ自身がサポートするJavaのバージョンがサポートされます。現在サポートされているのはJava8となります。

INSUITE®がサポートするLuxorのバージョン

INSUITE®がサポートしているLuxorのバージョンは下表の通りです。一部未検証な組み合わせもありますが、理論上使用可能であるため、サポート対象としています。

表 LuxorとINSUITE®のバージョン

INSUITE® Luxor Ver.1.3.0以前 Luxor Ver.1.3.X Luxor Ver.2.0.X
Ver.3.1.X
Ver.3.2.X
Ver.3.3.X
Ver.3.4.X
Ver.3.5.X
Ver.4.0.X
Ver.4.1.X

◯:検証済み △:未検証 ☓:サポート対象外

Sm@rtDBがサポートするLuxorのバージョン

Sm@rtDBがサポートしているLuxorのバージョンは下表の通りです。一部未検証な組み合わせもありますが、理論上使用可能であるため、サポート対象としています。

表 LuxorとSm@rtDBのバージョン

Sm@rtDB Luxor Ver.1.3.0以前 Luxor Ver.1.3.X Luxor Ver.2.0.X
Ver.3.2.X
Ver.3.4.X
Ver.3.5.X
Ver.3.6.X
Ver.4.0.X
Ver.4.1.X

◯:検証済み △:未検証 ☓:サポート対象外

各サーバの役割と通信

Luxorサーバと各クライントサーバ(INSUITE®サーバ/Sm@rtDBサーバ)の構成と役割、ネットワークの通信要件などを説明します。

各サーバの基本構成と役割

以下はINSUITE®およびSm@rtDB環境にLuxorサーバを構築する場合の構成例です。それぞれの役割については、次の表「LuxorサーバとLuxor管理端末の役割」を参照してください。

図 Luxorサーバの構成例

Luxorサーバの構成例

Luxorサーバと管理端末の役割について、次の表に記載します。

表 LuxorサーバとLuxor管理端末の役割

Luxorサーバ 役割
Luxorサーバ 各APサーバより送られてきた検索リクエストに対し、閲覧権限チェックし、検索結果を返すサーバ。HTTPサービスとしてTomcatを利用している
LuxorサーバはNFSサーバ・DBサーバ・管理サーバに同居させることも可能。性能面の考慮や検索速度を考慮すると、専用サーバに導入することを推奨
Luxor管理端末 Luxor管理画面を表示する端末。WEBブラウザを使ってLuxor管理画面にアクセスし、動作確認・インデックス作成状況の確認・SolrCloud状況の確認・インデックス件数確認などを行うことができる
LuxorサーバはAPサーバ・管理サーバからのみアクセスできれば良いので、基本的にはDMZの内側へ設置することが推奨
ただし、Luxor管理端末からアクセス可能になるよう構成する必要がある。通常の運用時には特に必要ない

各サーバ間の通信要件

Luxorを利用する際、各サーバ間ではデフォルトでBASIC認証を用いて認証を行っています。Luxor管理端末からLuxorサーバにアクセスする場合は、ユーザ名とパスワードが必要になります。

ユーザ名とパスワードは、インストール時に変更可能です。変更方法の詳細については、設定ファイルsetup.confのパラメータluxorUserPassについての記載を参照してください。

表 各サーバ間のプロトコル(デフォルトポート)

サーバ プロトコル 通信内容
Luxorサーバ→INSUITE® APサーバ
Luxorサーバ→Sm@rtDB APサーバ
HTTP
(デフォルト:80)
LuxorからINSUITE®/Sm@rtDBへの内部リクエストを行う
INSUITE® APサーバ・管理サーバ → Luxorサーバ HTTP
(デフォルト:10080)
INSUITE®からLuxorへの検索、データ登録を行う
Sm@rtDB APサーバ → Luxorサーバ HTTP
(デフォルト:10080)
Sm@rtDBからLuxorへの検索、データ登録を行う
Luxor管理端末 → Luxorサーバ HTTP
(デフォルト:10080)
システム管理者がLuxorの管理画面を参照する
Luxorサーバ HTTP
(デフォルト:18005)
LuxorのTomcatがシャットダウンのリクエストを受け付ける
ZooKeeper※1 HTTP
(デフォルト:11080、11081、11082)
・11080:ZooKeeperが対外通信する(即ち、ZooKeeperのクライアント側がZooKeeperへの内部リクエストを行う)ためのポート。setup.confファイル設定用
・11081:Luxorが複数台構成にする場合、ZooKeeperクラスター内部サーバ間の通信用ポートzoo.cfgファイル設定用
・11082:ZooKeeperクラスター内部サーバ間の通信用ポート。Luxorサーバのリーダーがサービス停止された場合、ZooKeeperがこのポートで新しいリーダーサーバを選出する。zoo.cfgファイル設定用
ActiveMQ※2 HTTP
(デフォルト:12080、12081、12082、12083)
・12080:Luxorが受け取ったリクエストをActiveMQに保存したり、ActiveMQからレコードを取得したりするための通信用ポート
・12081:ActiveMQ のマスタノードがレプリケーションプロトコルを提供するポート
・12082:JMX コネクタが利用するポート
・12083:RMI サーバが利用するポート
12081、12082、12083は、Luxor内部リクエスト通信用のポートとなる。この三つの番号に関しては番号衝突が発生しない限り、変更する必要なし
※設定ファイルsetup.confに番号変更のパラメータを用意していない

※1 ZooKeeperとは
Apache ZooKeeper(アパッチ ズーキーパーと呼ばれ、以下はZooKeeperで表記)はApacheソフトウェア財団のオープンソースプロジェクトで、大規模分散システムでよく利用される、設定情報の集中管理や名前付けなどのサービスを提供するソフトウェアである。Luxor Ver.2.0.0よりZooKeeperサービスがLuxorモジュールと同梱され、インストール対象となります。
※2 ActiveMQとは
Apache ActiveMQ(アパッチ アクティブ エムキューと呼ばれ、以下はActiveMQと表記)は、Apache License 2.0による Java Message Serviceを実装したメッセージ関連のオープンソースのミドルウェアである。Luxor Ver.2.0.0よりActiveMQサービスがLuxorモジュールと同梱され、インストール対象となります。

Luxorモジュール構成

Ver.2.0.X系のモジュール構成は以下の通りです。

下記では、Luxor Ver.2.0.3 モジュール構成を例にしています。各リビジョンに合わせ、読み替えてください。

モジュール名 luxor.2.0.3.tbz
モジュール構成 luxor.2.0.3/solrSchemaDAT.tar.gz
luxor.2.0.3/solrSchemaJPT.tar.gz
luxor.2.0.3/zkcli.sh
luxor.2.0.3/jre-8u152-linux-i586.tar.gz
luxor.2.0.3/jre-8u152-linux-x64.tar.gz
luxor.2.0.3/apache-tomcat-8.5.24.tar.gz
luxor.2.0.3/log4j.properties
luxor.2.0.3/setup.sh
luxor.2.0.3/solr.war
luxor.2.0.3/luxor-tool/
luxor.2.0.3/luxor-tool/luxortool.sh
luxor.2.0.3/luxor-tool/luxortool.jar
luxor.2.0.3/luxor-tool/conf.xml

注意

Luxor Ver.2.0から日本語検索精度向上オプションを追加したため、Ver.2.0以降のモジュール構成も一部変更しています。変更内容は次となります。

(廃棄)solrSchemaV1.tar.gz
(廃棄)solrSchemaV2.tar.gz
(追加)solrSchemaDAT.tar.gz
(追加)solrSchemaJPT.tar.gz

solrSchemaDAT.tar.gzはドリーム・アーツが開発したトークナイザ(DATokenizerFactory:N-gramというトークナイザのカスタマイズ)を利用するモジュールとなります。solrSchemaJPT.tar.gzは形態素解析トークナイズの一種類であるJapaneseTokenizerFactoryを利用するモジュールとなります。
二種類のトークナイザに関しては、本ドキュメントの「接続関連の設定」の「スキーマの選定」にて記載しています。構築時に利用するスキーマを決めてください。
solrSchemaDAT.tar.gzは、廃棄したsolrSchemaV2.tar.gzと同様にN-gramトークナイザDATokenizerを使用するスキーマであり、solrSchemaV2.tar.gzより進化している分割方式となります。分割結果の違いに関しては、『Luxor_Ver.2.0_運用ガイド』の「検索精度」の記載を参照してください。

スキーマの選定

Luxor Ver.2.0より日本語の検索精度を向上させるために形態素解析型トークナイザJapaneseTokenizer(以下はJPTと表記)を使用するスキーマを追加しました。
従来のドリーム・アーツがカスタマイズ開発したN-gram型トークナイザDATokenizer(以下はDATと表記)を使用するスキーマも提供します。DATとJPTのいずれかを選択する必要があります。
下記の説明を参照しご判断ください。

スキーマの種類

形態素
言語学の用語で、意味を持つ最小の単位のこと。ある言語において、それ以上分解しては意味をなさなくなるところまで分解して抽出された、音素のまとまりです。形態素解析方法を利用するには形態素辞書が必要となります。LuxorではSolrの標準辞書を利用し、定期的に更新します。
N-gram
機械的に、ある文字数(N)単位で、1文字ずつずらしながら単語として分割する方法です。

検索精度の評価指標
検索システムの精度を評価するにあたり、基本的な評価指標が二つあります。

  • 再現率
  • 適合率

理想な検索システムは、膨大なドキュメント集合の中から「A:情報ニーズを満たすドキュメントだけ」を「B:漏れ無く」返すようなシステムです。

Aは適合率と呼び、Bは再現率と呼びます。

適合率、再現率共に高い検索システムが理想ですが、両者は通常トレードオフの関係にあり、一方を上げると他方が下がることが多いです。DAT、JPTそれぞれのスキーマを利用する際、それぞれの検索精度が期待されます。

  • DAT:再現率の向上
  • JPT:適合率の向上

分割差異

適合率を重視する検索ではJPTを使うことを推奨し、再現率を重視する検索では、DATを使うことを推奨します。下記文書のインデクシングを例にし、DATとJPTの分割差異を説明します。

協創・協働・協育はドリーム・アーツが提唱している働き方です。

DAT(再現率の向上)の場合

DATスキーマの分割

JPT(適合率の向上)の場合

JPTスキーマの分割

ストップワードに関して注意

助詞のように情報を持たない単語"が"や"は"などはストップワードと呼ばれ、DAT、JPTスキーマのモードではインデックスが作られません。ストップワードとして扱う言葉の設定については、下記ファイルを参照してください。

ストップワード辞典名称:stopwords.txt

Path例:
/var/luxor/insuite/schedule/conf/stopwords.txt

すべての機能(schedule、library、binderなど)へこのファイルを適用しています。

DATとJPTの特徴は下記の表で比較します。ハイライト表示の欄は利用時のメリットとなります。

表 DATとJPTの特徴対照表

スキーマ方式 分ち書き(Index)速度 必要ディスク量 検索速度 分ち書き単語数 検索漏れ 検索ノイズ
DAT 速い 遅い 多い 無し
JPT 遅い  ※1 速い 少ない 有り※2

※1に関する説明
Ver.1.3.8からVer.2.0以降のバージョンへバージョンアップ後、デフォルトモードのJPTスキーマでは、インデックスサイズが小さくなることが確認出来ます。変化傾向は下表で示しています。
検証結果は、記載している検証条件への計測結果ですので、あらゆる環境で同じ結果が得られるわけではありません。

データ前提条件
Sm@rtDBデータ バインダ:2004件
プロセス:5000件
文書:30万件文書があるバインダー(100部品)
Luxorのバージョン インデックスサイズ
Luxor Ver.1.3.8 9.1GB
Luxor Ver.2.0(DATモード) 5.7GB
Luxor Ver.2.0(JPTモード) 4.5GB

※2に関する説明

JPTを利用するとき、形態素解析では文の構造を解析し、意味を持つ最小単位の単語に分割します。
検索語によっては検索漏れが生じる可能性があります。

下記の例で説明します。

文書に「聖マリアンナ医科大学病院病理部」という情報が含まれる。
文を解析して索引語に分割する。
分割される単語は「聖マリアンナ医科大学」、「病院」、「病理」、「部」となる。


【検索例】
「聖マリアンナ医科大学」で検索 → ヒットされる
「病院」で検索 → ヒットされる
「聖マリアンナ」で検索 → ヒットされない(検索漏れ)
「医科大学」で検索 → ヒットされない(検索漏れ)

JPTを利用する時、未知語(中国語が混在される場合、未知語と同様に処理される)を1-gramで分ち書きます。例えば上記の例で説明したドリーム・アーツ独自単語「協働・協創・協育」が未知語と認識され、一文字毎で分割します。未知語の検索漏れを防ぐことが出来ます。

未知語が1-gramで分ち書くと、多少インデックスデータサイズが大きくなります。ユーザが独自の辞書を定義することで、未知語の問題を回避できます。Luxorサーバを構築する前に、ユーザが用意した辞書を基に「userdict_ja.txt」を定義してください。

Path例:/var/luxor/insuite/schedule/conf/userdict_ja.txt

※辞書利用必要のすべての機能(schedule、library、binderなど)へこのファイルを適用する必要があります。

通常の形態素解析では、最適と思われるトークンの並びを一つだけ出力します。ただ、同じ文章(文字列)でも、トークンの区切り方によって複数の解釈ができ、別の意味になってしまうこともあります。これは、単純にユーザ辞書を登録するだけでは対応しきれない課題です。本課題を改善するために、Luxor Ver.2.0から利用するSolrがN-bestの機能を追加され、単純の形態素解析と比べ、検索漏れが少なくなります。

例:「営業部長谷川」という文章は2種類の解釈があります。
一つ目は「営業」「部長」「谷川」
2つ目は「営業」「部」「長谷川」
通常の形態素解析を利用すると、前者のようにトークナイズしますが、N-best機能を利用すると、両者ともトークナイズすることが出来ます。

JPT/DAT選定時のお勧め

Luxorバージョンアップする時、あるいは他の検索エンジンからLuxorへ切り替える時、検索仕様の統一性を保持したい場合は、

  • 従来のLuxor Ver.1.Xの環境では、N-gramベースになるため、DATを指定する
  • Sm@rtDBのLuceneの環境では、N-gramベースの文字列抽出方法であるため、DATを指定する

Ver.2.0以降のインストーラーでは、スキーマのデフォルト設定がJPTになっています。

環境構築時、DATに変更してください。setup.confの「schemaISEVer」と「schemaSDBVer」にDATを指定してください。

完全一致検索

完全一致検索とは、調べたいキーワードをダブルクォーテーション「""」で囲むことで、より精度の高い情報を探し出せる方法です。
Luxor Ver.2.0以前のバージョンは完全一致検索を対応していませんが、DATスキーマ(N-gram)は論理的に完全一致による検索結果が保証できる点は大きな特徴です。

以下の例で説明します。

① ボールペンの性能を左右する先端の加工は特に重要で高度な技術力が要求される。
② 水性ボールペンの内部構造には、インクの貯留方式によって中綿式と直液式がある。
③ 油性ボールペンは1930-1940年代にビーロー・ラースローによって開発された。
④ ボールペンは様々な種類があり、水性、油性、ゲルインクやエマルジョンなどに分類されるようだ。

4つの例文に対し、「水性ボールペン」で検索する場合、
DATスキーマの場合、 ②がヒットされる
JPTスキーマの場合、 ②と④がヒットされる

上記検索結果のロジックを説明します。

検索ロジック

DAT: N-gramの方式で、分割された単語のAND検索となる
JPT: 形態素解析の方式で、分割された単語のAND検索となる

「水性ボールペン」というキーワードで検索する際に、DATとJPTの単語分割結果は下記となります。
DAT: 「水性」AND「性ボ」AND「ボル」AND「ルベ」AND「ペン」
JPT: 「水性」AND「ボールペン」

DATの場合はキーワードが機械的に2文字ずつ分割されるため、検索条件が多くなることでより完全一致検索の結果に近くなりです。

今後のバージョンにて、完全一致検索の対応はDAT、JPTモード共に対応予定です。

各種サーバの設定

インストール作業を実施する前の各種設定を説明します。

前提条件

前提条件は以下の通りです。インストール前に確認してください。

  • webadminというUser/Groupが存在しないことを想定しています。インストール時、UID/GID共に1521で作成します。存在する場合、そのUserでtomcatを起動する設定となります。

  • /etc/init.d/solrTomcatが存在するかしないかを確認してください。存在する場合、既にLuxorサービスが起動したり、同名のサービスが存在したりすることが想定されます。Solr用Tomcatサービスが起動していないことを前提にしてください。

  • 以下のファイル/ディレクトリが存在すると、インストールスクリプト実行時にエラーになります。事前にファイル/ディレクトリのあり/なしを確認してください。

    /etc/init.d/solrTomcat /etc/profile.d/solrTomcat.sh /usr/local/luxor/tomcat /var/luxor /var/log/luxor

  • ポートは通信可能な状態にしておいてください。またポートが既に使われているかどうかを確認してください。既に使われている場合、ポート番号をsetup.confで変更してください。ポート情報の詳細については、「表 各サーバ間のプロトコル(デフォルトポート)」を参照してください。

    例:10080のポートが存在するかどうかを確認するのは下記のコマンドを実行してください。実行結果がある場合、既に使用済みを意味します。

    # netstat -anotulp | grep 10080

  • NFSでマウントしたディレクトリ上にインストールする場合は、本章の「LuxorのインデックスをNFS上に保存する方法」を参照してください。

接続関連の設定

INSUITE® AP・管理サーバまたはSm@rtDB APサーバとLuxorサーバ間のリクエスト送信に必要な接続設定を説明します。

Luxorサーバの設定

Luxorの設定ファイルsetup.confについては、次のまとめを参照してください。

setup.confのパス

/root/luxor.2.0.3/setup.conf

setup.confの反映

# sudo sh setup.sh -refrectConf
# sudo service solrTomcat restart

※Luxorの設定ファイルsetup.confを変更する際、INSUITE®(V3.4.1以降)とSm@rtDBのサービス停止は不要です。Luxorサービス停止していても、インデックス作成のリクエストはDBのキューテーブルに保持され、Luxorサーバを再起動後にDBサーバのキューテーブルの情報からインデックスの作成を再開します
Ver.3.4.1以前のINSUITE®では、DBサーバのキューテーブルが設けていません。Luxorサーバ停止すると、インデックス作成中のリクエストが保持できませんので、インデックスの不整合を起こせないよう、Ver.3.4.1以前のINSUITE®を利用中の場合、事前のサービス停止が必要です。詳細については、「Luxorの設定ファイル変更」の記載を参照してください。

Ver.2.0.3の場合のパスを例にしています。各リビジョンに合わせ、読み替えてください。

表 setup.confファイルの主な設定

パラメータ 説明
schemaISEVer INSUITE®のスキーマのバージョン設定
DAT:DATokenizerFactoryトークナイザを使用するスキーマを利用
JPT:JapaneseTokenizerFactoryトークナイザを使用するスキーマを利用
(Luxor Ver.2.0.X以降に追加)
schemaSDBVerと同じ設定をしてください。
schemaSDBVer Sm@rtDBのスキーマのバージョン設定
DAT:DATokenizerFactoryトークナイザを使用するスキーマを利用
JPT:JapaneseTokenizerFactoryトークナイザを使用するスキーマを利用
(Luxor Ver.2.0.X以降に追加)
schemaISEVerと同じ設定をしてください。
addAllowIps Luxorサーバへ送信する検索リクエストを許可する各APサーバのIPアドレスを指定するパラメータ。複数設定可。INSUITE® AP・管理サーバ/Sm@rtDB APサーバ/Luxorサーバ(複数台構成の場合)のIPアドレスを全て指定してください。※ 複数IPアドレスの場合、カンマ区切り、スペースは入れないでください。
ネットワークセグメント単位での指定可能。例:addAllowIps="10.2.0.0/16"
addBasicIps Luxor管理端末からLuxorサーバへ送信するリクエストを許可するIPアドレスを指定するパラメータ。複数設定可。Luxor管理端末のIPアドレスを指定してください。※複数IPアドレスの場合、カンマ区切り、スペースは入れないでください。
ネットワークセグメント単位での指定可能。例:addBasicIps="10.2.0.0/16"
iseUrl 閲覧権限をチェックするリクエストの送信先を指定するINSUITE®用パラメータ。一台構成(INSUITE®サーバ)の場合、INSUITE® APサーバのIPアドレスかFQDNを指定。複数台構成(INSUITE®サーバ)の場合、LBのIPアドレスかFQDNを指定してください。
※INSUITE®管理サーバは指定できない。
sdbUrl 閲覧権限をチェックするリクエストの送信先を指定するSm@rtDB用パラメータ。一台構成(Sm@rtDBサーバ)の場合、Sm@rtDB APサーバのIPアドレスかFQDNを指定。複数台構成(Sm@rtDBサーバ)の場合、LBのIPアドレスかFQDNを指定してください。
maxHostConnections 閲覧権限をチェックするリクエストにおけるINSUITE® APサーバとSm@rtDB APサーバ1台当りの最大同時接続数
maxTotalConnections 閲覧権限をチェックするリクエストにおけるINSUITE® APサーバとSm@rtDB APサーバ全台への最大同時接続数
localhostAddress 該当LuxorサーバのIPアドレスを設定してください。
replicas Luxorサーバの台数。
1、3、5などの奇数を設定してください。単体構成の場合は1を設定してください。SolrCloudを利用する複数台構成で構築する場合、3以上の奇数を設定してください。
zkClientPort ZooKeeperが対外通信する(即ち、ZooKeeperのクライアント側がZooKeeperへの内部リクエストを行う)ためのポート
zkHost ZooKeeperサーバのIPアドレスを設定。ポート番号を含めて設定してください。複数IPアドレスを設定する場合、カンマ区切りで、スペースを含めないでください。
例:10.2.2.10:11080,10.2.2.11:11080,10.2.2.12:11080
zkMyID Luxorサーバの番号を設定。単台(Luxorサーバ)の場合、Luxorサーバが一つしかないため、"1"に設定してください。複数台(Luxorサーバ)の場合、Luxorサーバの番号を正整数で順番的に設定してください。
例:3台構成の場合、Luxorサーバの構築時の"zkMyId"をそれぞれ1、2、3で設定
amqPort Luxorが受け取ったリクエストをActiveMQに保存したり、ActiveMQからレコードを取得したりするための通信用ポート
amqAddress ActiveMQサービスのIPアドレスを設定する。ポート番号を含めて設定してください。複数IPアドレスを設定する場合、カンマ区切りで、スペースを含めないでください。
例:10.2.2.10:12080,10.2.2.11:12080,10.2.2.12:12080

その他、setup.confで指定可能なパラメータは以下の通りです。必要に応じて指定してください。

表 setup.confファイル全ての設定情報

項目名 必須 初期値 説明
UserName webadmin Tomcat起動User名
UserId 1521 Tomcat起動UserのId。Userが存在しない場合に作成する際のUserIDを指定する。
GroupName webadmin Tomcat起動Userの所属Group名
GroupId 1521 Tomcat起動Userの所属GroupID。Groupが存在しない場合に作成する際のGroup IDを指定
tomcatInstallDir /usr/local/luxor TomcatのInstall先ディレクトリ。Tomcat Install先ディレクトリ配下のtomcat ディレクトリがTomcat Homeになる。
tomcatMediaFile apache-tomcat-8.5.24.tar.gz Installに利用するtomcat File
tomcatInitFile /etc/init.d/solrTomcat Tomcat起動File
javaMediaFile jre-8u152-linux-x64.tar.gz サーバ/OSが32bitの場合等は、jre-8u152-linux-i586.tar.gzを指定。
サーバ/OSが64bitの場合等は、jre-8u152-linux-x64.tar.gzを指定してください。
javaDir jre1.8.0_152 javaMediaFileを展開した際のディレクトリを指定。jre1.8.0_152を指定してください。
solrPort 10080 Tomcatが検索等のリクエストを受け付けるポート
tomcatShutdownPort 18005 Tomcatが停止リクエストを受け付けるポート
solrDataDir /var SolrのDataを置くディレクトリ。/var/luxorとのディレクトリにする場合、「/var」と指定して良い
solrLogDir /var/log/luxor SolrのLog出力先ディレクトリ。変更する場合、log4j.xmlが修正必要
solrWarFile solr.war SolrのWar File名
addAllowIps Solrへのアクセスを無条件で許可するIP。INSUITE® AP/管理サーバ、Sm@rtDB APサーバ/Luxorサーバ(複数台構成の場合)のIPアドレスを指定。複数指定可
複数記述する場合は、カンマ区切り。スペースは入れないでください。
127.0.0.1は無条件で許可されます。ネットワークセグメント単位での指定可能。例:addAllowIps="10.2.0.0/16"
addBasicIps SolrへのアクセスをBASIC認証で許可するIP。Luxor管理端末のIPアドレスを指定。複数指定可
複数記述する場合は、カンマ区切り。スペースは入れないでください。ネットワークセグメント単位での指定可能。例:addBasicIps="10.2.0.0/16"
iseUrl http://localhost/ 閲覧権限をチェックするリクエストの送信先を指定するINSUITE®用パラメータ。
一台構成(INSUITE®サーバ)の場合、INSUITE® APサーバのIPアドレスかFQDNを指定。複数台構成(INSUITE®サーバ)の場合、LBのIPアドレスかFQDNを指定してください。
※INSUITE®管理サーバは指定できません。
△INSUITE®にてLuxor検索エンジンを使用する場合は必須
sdbUrl http://localhost/hibiki 閲覧権限をチェックするリクエストの送信先を指定するSm@rtDB用パラメータ。
一台構成(Sm@rtDBサーバ)の場合、Sm@rtDB APサーバのIPアドレスかFQDNを指定。複数台構成(Sm@rtDBサーバ)の場合、LBサーバのIPアドレスかFQDNを指定してください。 △Sm@rtDBにてLuxor検索エンジンを使用する場合は必須
localhostAddress 127.0.0.1 該当LuxorサーバのIPアドレスを設定してください。
watchInterval 5 watchIntervalはsetup.conf設定ファイル内のパラメータで、log4j.xmlファイルの更新を監視する、監視間隔を設定(単位:秒)
replicas 1 Luxorサーバの台数
1、3、5などの奇数を設定してください。単体構成の場合は1を設定してください。SolrCloudを利用する複数台構成で構築する場合、3以上の奇数を設定してください。
zkClientPort 11080 ZooKeeperが対外通信する(即ち、ZooKeeperのクライアント側がZooKeeperへの内部リクエストを行う)ためのポート
zkHost 127.0.0.1:11080 ZooKeeperサーバのIPアドレスを設定する。ポート番号を含めて設定してください。複数IPアドレスを設定する場合、カンマ区切りで、スペースを含めないでください。
例:10.2.2.10:11080,10.2.2.11:11080,10.2.2.12:11080
zkDataDir /var/luxor/zookeeper/data ZooKeeperサーバがデータを保存するディレクトリ。必要に応じて、設定変更を行ってください。
zkDataLogDir /var/luxor/zookeeper/log ZooKeeperサーバのログファイルを保存するディレクトリ。必要に応じて、設定変更を行ってください。
zkMyID 1 Luxorサーバの番号を設定。単台Luxorサーバの場合、Luxorサーバが一つしかないため、"1"に設定してください。複数台Luxorサーバの場合、Luxorサーバの番号を正整数で順番的に設定してください。
例:3台構成の場合、Luxorサーバの構築時のzkMyIdをそれぞれ1、2、3で設定
amqPort 12080 Luxorが受け取ったリクエストをActiveMQに保存したり、ActiveMQからレコードを取得したりするための通信用ポート
amqAddress 127.0.0.1:12080 ActiveMQサービスのIPアドレスを設定する。ポート番号を含めて設定してください。複数IPアドレスを設定する場合、カンマ区切りで、スペースを含めないでください。
例:10.2.2.10:12080,10.2.2.11:12080,10.2.2.12:12080
maxPostSize 42991616 TomcatにはPostサイズの上限がある。Tomcatの最大Post Sizeを指定するパラメータ。指定しない場合: 2MB
javaHeapOpt -Xms512m -Xmx1024m java heap size Option等を指定するパラメータ。XmsはLuxorが使用するメモリの最小値を指し、Xmxは最大値を指す。Xmxの値を物理メモリの1/3~1/2に設定することが推奨
softCommitInterval 5 SolrのSoftCommit間隔(秒数)。インデックスへの更新発生後コミットするまでの秒数を指定
この間発生した更新はまとめてコミットされる。値が大きいとコミット処理によるサーバ負荷を軽減できるが、更新が検索結果に反映されるまでに時間を要してしまう
optimizeInterval 1800 SolrのOptimize間隔(秒数)。インデックスへの更新発生後、オプティマイズを実施するまでの秒数を指定
値が大きいと、オプティマイズによるサーバ負荷を軽減できる。
オプティマイズしないままでは、検索パフォーマンスが劣化する
luxorUserPass luxor:dreamarts Tomcat Basic認証で設定するID:Password。SolrのAdmin画面にログインする場合の認証に利用する
iseApacheUser luxor INSUITE® Apache Basic認証に設定されているUser名。削除は手動で行う必要がある
※INSUITE®にてLuxor検索エンジンを使用し、Basic認証を利用する場合は必須
iseApachePass dreamarts INSUITE® Apache Basic認証に設定されているPassowrd。削除は手動で行う必要がある
※ INSUITE®にてLuxor検索エンジンを使用し、Basic認証を利用する場合は必須
luxorQRsCache 1024 solr queryResultCache Size
luxorDocCache 1024 solr documentCache Size
maxHostConnections 64 APサーバ1台当りの最大同時接続数
Luxorは検索結果を出力した後、各データの閲覧権限をINSUITE® AP及びSm@rtDB APサーバにリクエストする。(複数台のAPサーバを指定することが可能)同時に多数のユーザが検索を行った場合は、APサーバの最大処理コネクション数を超過する場合があるため、この設定により1台のAPサーバに対する最大接続数を規定して、これを超えた接続リクエストがAPサーバに送られないようにする
設定値は、ご利用環境のAPサーバが通常どの程度接続数に余裕があるかを考慮して決定してください。
maxTotalConnections 256 APサーバ全台への最大同時接続数(Luxor Ver.1.1.0で追加)
maxHostConnectionsと同様にINSUITE® AP及びSm@rtDB APサーバへ最大接続数を規定
maxHostConnectionsは1台当りの最大接続数を規定するが、maxTotalConnectionsは全APサーバに対する最大接続数を規定
maxSearchRow 1000 検索該当総数の上限値。設定可能値:1~2147483647。上限値は各機能(INSUITE®及びSm@rtDB)の合算となる点はご注意ください。
例えば、1000に設定する際、検索対象が1コアの場合は、1000件を上限として検索する。3コアの場合は、それぞれのコアに対して333件、333件、334件を上限として検索する。この上限値を超えると、以下のメッセージが表示される
「全文検索の結果が上限を超えたため、一部しか表示されていない可能性があります。」
本設定に応じて、INSUITE®またはSm@rtDB APサーバおよびLuxorサーバのメモリ使用量が増加するため、実際の数値設定は利用シーンに合わせて設定してください。
permitRows なし 検索結果のうち権限チェックをする対象の上限値。設定可能値:1~maxSearchRowの値
Luxorサーバの性能を考慮する場合、maxSearchRowの設定値より小さい値を設定してください。(Luxor Ver.1.3.0で追加)上限値を超えると、以下のメッセージが表示される。
「全文検索の結果が上限を超えたため、一部しか表示されていない可能性があります。」
Luxorは1回の検索に対し、INSUITE®(またはSm@rtDB)のAPサーバに1回の権限チェックリクエストを送る。permitRowsはLuxorからINSUITE®(またはSm@rtDB)へ渡すリクエストの上限値を設定する。上限値permitRowsは各機能(INSUITE®及びSm@rtDB)の合算となる点はご注意ください。
例えば、permitRowsを"1000"に設定する際、検索対象が1コアの場合は、1000件を上限として検索する。3コアの場合は、それぞれのコアに対して333件、333件、334件を上限として検索する
maxAccess なし 検索の同時アクセス数の上限値。設定可能値:1~10000。
(Luxor Ver.1.3.0で追加)アクセス数を超えると、以下のメッセージが画面に表示される
「全文検索の同時アクセス上限を超えました。暫く待ってから、再検索してください。」
fileDownload
ReadTimeout
300 添付ファイルのインデックス作成時、INSUITE®、Sm@rtDBのAPサーバからコンテンツを読み込む際のタイムアウト設定(単位秒)
(Luxor Ver.1.2.1で追加) 添付ファイルが圧縮ファイルの場合、圧縮ファイルを解凍してコンテンツもインデックスに書き込むため、INSUITE®、Sm@rtDBのAPサーバとの通信が発生し、コンテンツを読み込む時間が掛かる。お客様の環境に合わせた値を設定してください。
fileDownload
ConnectTimeout
300 LuxorサーバからINSUITE®、Sm@rtDB APサーバへリクエストし、接続するタイムアウトの設定(単位:秒)。(Luxor Ver.1.2.1で追加)
schemaISEVer JPT INSUITE®のスキーマのバージョン設定
DAT:DATokenizerFactoryトークナイザを使用するスキーマを利用
JPT:JapaneseTokenizerFactoryトークナイザを使用するスキーマを利用
(Luxor Ver.2.0.0以降追加)
schemaSDBVerと同じ設定をしてください。
schemaSDBVer JPT Sm@rtDBのスキーマのバージョン設定
DAT:DATokenizerFactoryトークナイザを使用するスキーマを利用。
JPT:JapaneseTokenizerFactoryトークナイザを使用するスキーマを利用。
(Luxor Ver.2.0.0以降に追加)
schemaISEVerと同じ設定をしてください。
maxRetriesOn
NoHttpResponseException
1 0以上の整数(0は含まない)(Luxor Ver.1.3.6で追加) SolrでNoHttpResponseExceptionは発生すると、Luxorはリスポンスを得るためのretry数を設定
「maxRetriesOnNoHttpResponseException」の設定は大きくしないことを推奨。設定値は大きくなると、検索エンジンの負荷は重く、性能劣化の恐れがある
retriesDelayOn
NoHttpResponseException
500 0以上の整数(0は含まない)単位はミリ秒(ms)
(Luxor Ver.1.3.6で追加)
「maxRetriesOnNoHttpResponseException」に"0"以外を設定して、SolrでNoHttpResponseExceptionが発生すると、Luxorでretry操作がある。そのretry操作の時間間隔は「retriesDelayOnNoHttpResponseException」より設定(※この設定より、次回のretry時間間隔は自動的に前回の二倍になる。例えば、"500"に設定する場合、次回のretry時間間隔は1000
tomcatStopMaxWait 300(秒) Solr用のTomcatを手動停止する際、設定値が過ぎた場合、強制終了させる設定
logMaxBackupDays 0(単位:日) (Luxor Ver.1.3.8で追加)日時によりログファイルの分割を行うDailyRollingFileAppenderに対し、ログ保存期間を超えたLuxorのsolr.logとluxor.logを削除するログローテート設定。デフォルト値は0。設定値が0の場合、ログローテートは行われない。0以上の整数値を設定
※ログローテート対象は、現時点でのlog4j.xmlのDatePatternにより生成されたログのみとする。DatePatternが変更された場合、変更前のDatePatternにより生成されたログファイルはローテート対象外となり処理しないため、ご注意ください。
※logMaxBackupDays変更時、setup.confの設定反映とSolr用のTomcat再起動が必要
authCheckTimeout 290 (Luxor Ver.2.0.5で追加)LuxorからINSUITEやSm@rtDBへの接続異常や製品APサーバ高負荷による権限チェックのレスポンスが長時間でLuxorに戻らない時、権限チェック処理がタイムアウトすると中止する仕組み。単位: 秒(s)
profLogLimitTime 0 (Luxor Ver.2.0.5で追加)検索処理時間は設定のprofLogLimitTimeより長い場合、検索処理にかかる時間の詳細を出力する。デフォルト0の場合、該当設定利用しない。単位: 秒(s)
discardResultIfAuthCheckFail 0 (Luxor Ver.2.0.5で追加)INSUITE、Sm@rtDB側の権限チェック処理が失敗する時、Luxor側の独自の権限チェックで閲覧可能な結果を表示するかどうかのオプション。設定値:0、1
- 0: INSUITE、Sm@rtDB側の権限チェック処理が失敗する時、Luxor側の独自の権限チェックで閲覧可能な結果を表示する
- 1: INSUITE、Sm@rtDB側の権限チェック処理が失敗する時、Luxor側の独自の権限チェックで閲覧可能な結果を表示しない

INSUITE® APサーバの設定

INSUITE® APサーバの設定は次の二つがあります。

domain.dat(Luxorサーバへの接続情報を設定)
conf_search_luxor.dat(Luxorの各種設定を保持するファイル)

ここでは、domain.datとconf_search_luxor.datファイル内のLuxor関連パラメータのみをまとめています。他のパラメータについては、『INSUITE®アプリケーション・アドミニストレーション・ガイド』を参照してください。

表 INSUITE®からLuxorへの接続設定(/home/DreamArts/data/system/domain.dat)

パラメータ 初期値 説明
luxor_domain なし Luxorサーバへ送信する検索リクエストの送信先を指定するパラメータ
・INSUITE® AP・管理サーバからアクセス可能なLuxorサーバのドメイン名かIPアドレスを指定してください。(ドメイン名はINSUITE®サーバ上にて使える状態にしておく必要がある。)
複数指定はできない。Luxorサーバが複数台構成の場合、ロードバランサで設定したLuxorサーバのドメイン名かIPアドレスを指定してください。
luxor_port なし Luxorサーバへ送信する検索リクエストの送信先のポートを指定するパラメータ
・Luxorサーバがリクエストを受け付けるポート番号を指定してください。
luxor_rdir /solr Luxorサーバへ送信する検索リクエストの送信先のディレクトリを指定するパラメータ
・Luxorサーバにて、検索リクエストを受け付けるディレクトリ。
通常変更する必要はなし。
luxor_allow_ip なし 閲覧権限をチェックするリクエストの送信先を許可するIPアドレスを指定するパラメータ
INSUITE® APから見た場合のLuxorサーバのIPアドレスを指定してください。(カンマ区切りで複数可)
※Luxorインストール時の設定ファイルsetup.confのiseUrlに"localhost"を指定する場合、luxor_allow_ipには"127.0.0.1"を指定してください。
※必ずIPアドレスを指定してください。ドメイン名は無効
※ Luxorインストール時setup.confのiseUrlにロードバランサーIPを設定する場合は、INSUITE®からみたロードバランサーの仮想IPを指定してください。

※ domain.datのパラメータと値の記載方法は"PARAM=VALUE"または"PARAM[TABキー]VALUE"です。スペースは含まないでください。

luxor_allow_ip=xxx.xxx.xxx.xxx
luxor_allow_ip[TAB]xxx.xxx.xxx.xxx

下記は設定例:

# vi /home/DreamArts/data/system/domain.dat

--------------
luxor_allow_ip=10.1.1.1
luxor_domain=10.1.1.1
luxor_port=10080
luxor_rdir=/solr
--------------

表 Luxorのインストールに関連する設定(/home/DreamArts/data/custom/conf_search_luxor.dat)

パラメータ 初期値 説明
engine luxor 検索エンジンの指定。※ V3.4.0インストーラーを使用した場合、Luxorとして固定されているため、conf_search_luxor.datの検索エンジンの設定に"namazu"が設定されてもLuxorを使用
lib_folder_path 1 統合検索のフォルダパスを表示するオプション
1:フォルダパスを表示する(デフォルト)
0:表示しない
basic_auth on Luxorサーバとの通信時にBasic認証を使用する
on:Basic認証ON(デフォルト)※推奨設定
off:Basic認証OFF
auth_user luxor Luxorサーバとの通信時にBasic認証を使用する場合のユーザ名
auth_pass dreamarts Luxorサーバとの通信時にBasic認証を使用する場合のパスワード

Sm@rtDB APサーバの設定

Sm@rtDB APサーバの設定は次の二つがあります。

hibiki.xml(Sm@rtDBのAPサーバから見た場合のLuxorサーバのIPアドレスを指定)
default.xml(Luxorサーバへの認証情報を設定&検索エンジンの種類指定)

ここでは、hibiki.xmlとdefault.xmlファイル内のLuxor関連パラメータのみをまとめています。他のパラメータについては、『Sm@rtDB_運用ガイド』を参照してください。

表 LuxorサーバとAPサーバ間の接続設定(/etc/hibiki/hibiki.xml)

パラメータ 初期値 説明
webServiceHosts なし 閲覧権限チェックのリクエストを許可するIPアドレスを指定するパラメータ。Sm@rtDBのAPサーバから見た場合のLuxorサーバのIPアドレスを指定してください。
複数指定可能。Luxorが複数台構成の場合、すべてのLuxorサーバIPアドレスを設定してください。
LuxorサーバIPアドレスが10.2.2.147である場合の追加例:
    # vi /etc/hibiki/hibiki.xml

      <system>
        <!--
        ひびきアプリケーションのアクセスURLルートメールなどによるURL通知のために使用される。
        -->
        <property name="contextUrl" value="http://10.2.2.144/hibiki/"/>
        <property name="webServiceHosts" value="10.2.2.147,10.2.2.0/24,localhost,127.0.0.1"/>
      </system>

全文検索エンジンにLuxorを使用する場合は、default.xmlにて以下の指定が必要になります。

Luxorサーバへの認証情報を設定&検索エンジンの種類指定

検索エンジンの種類指定

設定ファイル名:/etc/hibiki/default.xml
親要素:default-values.system.fullTextSearch

表 検索エンジンの種類設定

要素名称 初期値 説明
service luxor 検索エンジンの種類を設定する
[luxor]タグは、この設定を"luxor"に設定時に有効
Luxorサーバへの認証情報を設定

設定ファイル名:/etc/hibiki/default.xml
親要素:default-values.system.fullTextSearch.luxor.server

表 LuxorサーバとSm@rtDBサーバ間の接続設定

要素名称 初期値 説明
contextUrl - LuxorサーバのURLを設定する。APサーバからLuxorサーバへの認証時に使用
Luxorサーバ複数台構成の場合、ロードバランサ(LB)で設定したLuxorサーバを指定してください。
auth.username luxor 認証用のユーザIDを設定
auth.password dreamarts 認証用のパスワードを設定