全文検索(Luxor)

Luxorに関する設定

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

  • 検索エンジンの種類
  • Luxorサーバへの認証情報
  • フェイルオーバーの設定情報

表 Luxorに関する設定

ファイル default.xml
親要素 default-values.system.fullTextSearch
検索エンジンの種類
要素 名称 初期値 説明
service lucene 検索エンジンの種類を設定します。
<luxor>タグは、この設定を"luxor"に設定時に有効です。
Luxorサーバへの認証情報
親要素 default-values.system.fullTextSearch.luxor.server
要素 名称 初期値 説明
contextUrl - LuxorサーバのURLを設定します。
APサーバからLuxorサーバへの認証時に使用します。(※)
auth.username - 認証用のユーザIDを設定します。
auth.password - 認証用のパスワードを設定します。
フェイルオーバーの設定情報
親要素 default-values.system.fullTextSearch
要素 名称 初期値 説明
fail-over - インデックスキューをチェックし、インデックス作成要求を出すAPサーバを指定します。
値の設定フォーマット:<サーバIP> <タイプ> <ロックファイルパス>
※ ロックファイルパスは必須ではありません。ロックファイルパスはインデックス作成の停止に使われます。「Luxorのインデックス作成の停止と再開」を参照してください。
タイプ 内容
PRIMARY インデックス作成を行うメインのサーバ
SECONDARY PRIMARYがダウンした時にインデックスの作成を
代行するサーバ
OFF インデックス作成に関与しないサーバ
lock-timeout 600 FailOverまでの待機時間を設定。単位は秒。
記述例 <system>
<fullTextSearch>
<service>luxor</service>
<luxor.server>
<contextUrl>http://10.2.2.147:10080/solr/</contextUrl>
<auth>
<username>luxor</username>
<password>dreamarts</password>
</auth>
</luxor.server>
<fail-over>
10.2.2.144 PRIMARY /var/hibiki/data/cabinet/index/indexer.lock,
10.2.2.143 SECONDARY /var/hibiki/data/cabinet/index/indexer.lock,
10.2.2.142 OFF
</fail-over>
<lock-timeout>1800</lock-timeout>
</fullTextSearch>
</system>

検索結果の件数を「表示可能件数」のみにする設定

検索結果の表示時に件数を表示しますが、件数には以下の2種類があります。

  • 検索該当総数:検索条件にヒットした件数
  • 表示可能件数:検索該当総数のうちログインユーザが閲覧可能な件数(検索結果として表示されている件数)

初期値は2種類両方の件数を表示しますが、設定によって「検索該当総数」を非表示にできます。

表 検索結果の表示件数に関する設定

親要素 default-values.system.unifiedSearch
要素 名称 初期値 説明
list-result-short-message false falseの場合、「検索該当総数」も表示します。「検索該当件数:○件 表示可能件数 ○件」という表示になります。
trueの場合、「検索該当総数」は表示されません。「表示可能件数 ○件」という表示になります。
検索該当総数とは、検索条件にヒットした件数です。
表示可能件数とは、検索該当件数のうち、ログインユーザが閲覧可能な件数です。(表下にサンプル)
記述例 <system>
<unifiedSearch>
<list-result-short-message>true</list-result-short-message>
</unifiedSearch>
</system>

補足:検索結果サンプル

単一検索条件の上限値の設定

SmartDB側からLuxor側へ渡す検索条件が、Luxor側で受け付けられる単一検索条件の上限値を超えないようにするための設定です。Luxor側の設定で上限値を変更している場合、その値に合わせて下さい。

表 単一検索条件の上限値の設定

ファイル default.xml
親要素 default-values.system.unifiedSearch
要素 名称 初期値 説明
max-clause-count 1024 Luxorの単一検索条件の上限値を指定します。
Luxor側のsolrconfig.xmlにある「query.maxBooleanClausestrue」と同じ値を設定してください。
記述例 <system.unifiedSearch>
<max-clause-count>1024</max-clause-count>
</system.unifiedSearch>

全文検索の条件オプションの設定

バインダ一覧全文検索

バインダ一覧での全文検索の条件オプションの初期値を変更できます。

表 バインダ一覧における全文検索実行時の条件オプション初期値に関する設定

親要素 default-values.system.unifiedSearch
要素 名称 初期値 説明
fullTextSearch-method AND バインダ一覧での全文検索の条件オプションを設定します。
AND:全ての語を含む
OR:いずれかの語を含む
記述例 <system>
<unifiedSearch>
<fullTextSearch-method>OR</fullTextSearch-method>
</unifiedSearch>
</system>

文書一覧全文検索

文書一覧での全文検索の条件オプションの初期値を変更できます。

文書一覧の初期値はLuceneの設定と共通です。

表 文書一覧全文検索の条件オプションの設定

親要素 default-values.brd. documentlist.search-box
要素 名称 初期値 説明
fullTextSearch-method AND 文書一覧での全文検索の条件オプションを設定します。
AND:全ての語を含む
OR:いずれかの語を含む
記述例 <documentlist>
<search-box>
<fullTextSearch-method>OR</fullTextSearch-method>
</search-box>
</documentlist>

全文検索結果のパス非表示設定

全文検索の結果表示のうち、キャビネット/バインダ、文書、プロセス、アプリへのパスを非表示にします。

表 全文検索結果のパス非表示設定

親要素 default-values.system.unifiedSearch.display-path
要素 名称 初期値 説明
binder true true:キャビネット/バインダのパスを表示する
false:キャビネット/バインダのパスを表示しない
document true true:文書のパスを表示する
false:文書のパスを表示しない
process true true:プロセスのパスを表示する
false:プロセスのパスを表示しない
imp true true:IMPの業務カテゴリを表示する
false:IMPの業務カテゴリを表示しない
記述例 <system>
<unifiedSearch>
<display-path>
<binder>false</binder>
<document>false</document>
<process>false</process>
<imp>false</imp>
</display-path>
</unifiedSearch>
</system>

プロセスに対する全文検索の表示に関する設定

プロセスに対する全文検索の表示/非表示の設定です。 この設定で非表示とした場合には、以下の機能で「プロセス」が表示されなくなります。 また、プロセスのサイドメニューの「全文検索」メニューも表示されなくなります。

対象機能

  • バインダのサイドメニューの文字列検索の対象機能
  • バインダ一覧の検索タブの対象機能
  • マイアプリのサイドメニューの文字列検索の対象機能

表 プロセスに対する全文検索の表示に関する設定

親要素 default-values.system.fullTextSearch.luxor
要素 名称 初期値 説明
search-process true プロセスに対する全文検索の表示/非表示を設定します。
true:表示する
false:表示しない
記述例 <system.fullTextSearch.luxor>
<search-process>true</search-process>
</system.fullTextSearch.luxor>

インデックス作成時の文字列抽出対象ファイルサイズ上限の設定

全文検索インデックス作成時に実施される添付ファイルから文字列を抽出する処理において、抽出対象とするファイルサイズの上限の設定です。

※設定値を超えるファイルサイズの添付ファイルが登録された場合、当該ファイルに関する文字列抽出処理はスキップされます。

表 文字列抽出対象ファイルのサイズ上限設定

ファイル default.xml
親要素 default-values.system.fullTextSearch.dehenken
要素 名称 max-file-size
既定値 262144000(250MB)
説明 全文検索インデックス作成時に実施される添付ファイルから文字列を抽出する処理において抽出対象とするファイルサイズ上限を数値(バイト)を指定
記述例 <system.fullTextSearch.dehenken>
<max-file-size>262144000</max-file-size>
</system.fullTextSearch.dehenken>

詳細


SmartDBで使用しているライブラリのバージョンには、OSの使用可能メモリ

が少なくなった場合に、ファイルサイズの大きい添付ファイルのテキスト抽出処理

を実施すると、OutOfMemoryが発生する可能性があります。

本設定値に適切な値を指定することで、上記のようなOutOfMemoryの発生を回避する

ことが可能となります。

注意事項


SmartDB APサーバのメモリの空き容量が少ない場合、max-file-size値を

初期値のままに使用するとOutOfMemoryが発生する可能性があります。

メモリの空き容量が少ない環境ではmax-file-size値を低く設定する調整を

行ってください。

インデックス作成時の文字列抽出処理のバッファサイズの設定

全文検索インデックス作成時に実施される添付ファイルから文字列を抽出する処理において、抽出結果を保持するバッファサイズ(メモリの大きさ)の設定です。

表 文字列抽出処理のバッファサイズ設定

ファイル default.xml
親要素 default-values.system.fullTextSearch.dehenken
要素 名称 max-buf-size
既定値 1048576(1MB)
説明 全文検索インデックス作成時に実施される添付ファイルから文字列を抽出する処理におけるデータ保持メモリサイズを数値(バイト)を指定
記述例 <system.fullTextSearch.dehenken>
<max-buf-size>1048576</max-buf-size>
</system.fullTextSearch.dehenken>

詳細


テキスト抽出処理では、本設定値に指定されたサイズ分のテキスト抽出結果を

メモリに保持します。その後、抽出結果が設定値内に納まらなかった場合は、

再度、指定されたサイズ分の読み込みを追加で行います。

従って、本設定値に設定した値よりもテキスト抽出の結果が小さかった場合、

テキスト抽出処理の性能改善が期待できます。

注意事項


この値を大きくした場合、テキスト抽出処理時に使用するメモリの量が増加する

場合があります。本設定値を指定する場合は、ご使用環境のメモリ状況に応じて

チューニングを行ってください。

Luxorサーバへのリクエストに対するタイムアウトの設定

Luxorサーバへのリクエストに対して、タイムアウトするかどうかを設定します。 タイムアウトする設定(デフォルト)にした場合の各処理のタイムアウト時間は、別表を参照してください。

表 Luxorサーバへのリクエストに対するタイムアウトの設定

親要素 default-values.system.fullTextSearch.luxor.read-timeout
要素 名称 初期値 説明
enable true Luxorサーバへのリクエストに対してタイムアウトするかどうかを設定します。
true:タイムアウトあり
false:タイムアウトなし
記述例 <system.fullTextSearch.luxor.read-timeout>
<enable>true</enable>
</system.fullTextSearch.luxor.read-timeout>

表 Luxorへの各リクエストに対するタイムアウト時間

機能 タイムアウト時間(単位:秒)
Luxor ping 10
Luxorバージョン取得 10
検索キーワードサジェスト 10
通常のインデクス作成/更新/削除(非同期モード) 10
全文検索 120

Luxorへのリクエストが失敗した際のリトライ回数の設定

Luxorリクエスト(Luxorインデックスの作成・更新・削除リクエスト)のリスト生成処理時にNullPointerExceptionが発生すると後続のインデックスキューデータが処理されなくなる問題を回避するためにデフォルトで3回リトライしますが、環境によって3回では少ない場合にリトライ回数を増やすための設定です。

※Luxorリクエストのリスト生成処理は再実行する最大回数(デフォルトでは3回)の処理が全て失敗するとインデックスキューデータが退避テーブルへ移動され、次のインデックスキューデータの処理に移ります。

表 Luxorリクエストキュー送信リトライ設定

ファイル default.xml
親要素 default-values.system.fullTextSearch.LuxorQueue
要素 名称 既定値 説明
max-retry 3 [ 正の整数 ]
Exceptionがスローされるまでにリトライされる回数
要素 名称 既定値 説明
retry-interval-millis 30000 [ 正の整数
リトライの間隔(ミリ秒)
記述例 <system.fullTextSearch>
<LuxorQueue>
  <max-retry>3</max-retry>
  <retry-interval-millis>30000</retry-interval-millis>
</LuxorQueue>
</system.fullTextSearch>

Luxorのインデックス作成の停止と再開

本項ではLuxorのインデックス作成の停止方法および再開方法を解説します。

Luxor.xmlのインデックス作成を停止するには、フェイルオーバーの情報にロックファイルパスを設定する必要があります。設定方法について、「表 Luxorに関する設定」を参照してください。変更した設定を反映するには、SmartDBのAPサーバを再起動する必要があります。

Luxorのインデックス作成の停止

インデックス作成を停止するには、ロックファイルパスに指定したファイルを作成します。

  • コマンド例
touch /var/hibiki/data/cabinet/index/indexer.lock   <--ロックファイルパス

Luxorのインデックス作成の再開

インデックス作成を再開するには、ロックファイルパスに指定したファイルを削除します。

インデックス作成再開後に一時停止中のインデックス作成から処理します。

  • コマンド例
rm /var/hibiki/data/cabinet/index/indexer.lock      <--ロックファイルパス

統合検索で特定バインダを検索対象から除外する設定

Luxorで特定バインダのインデックス作成を行わなくするための設定です。特定バインダの除外設定を行うと、統合検索(文字列検索)で特定バインダが検索対象から除外されます。

表 Luxorバインダインデックス作成除外設定

ファイル full_text_search.xml
親要素 fullTextSearch.luxor.document-index-exclude
要素 名称 既定値 説明
binders.binderIds - 指定したバインダ ID のインデックスを作成しない設定です。
設定後、対象バインダのバインダ概要を更新する必要があります。
複数指定する場合はカンマ区切りで指定します。
記述例:<binderIds>10002,10005</binderIds>
記述例 <document-index-exclude>
<binders>
<binderIds>10004</binderIds>
</binders>
</document-index-exclude>

検索履歴・サジェストリスト表示の利用有無の設定

検索履歴・サジェストをリスト表示する機能を利用するかどうかを設定します。 当機能を利用する場合は、Luxorのバージョンとして「2.2.0」以降が必要です。それ以前のバージョンをご利用の場合はfalseに設定してください。

表 検索履歴リスト表示の利用有無の設定

ファイル default.xml
親要素 default-values.system.fullTextSearch
要素 名称 初期値 説明
use-history true 履歴機能の利用有無を設定する。当設定はLuxorバージョンが「2.2.0」以降で有効です。
true:利用する
false:利用しない
記述例 <system.fullTextSearch>
<use-history>true</use-history>
</system.fullTextSearch>

サジェスト機能の動作設定

サジェストのリストをLuxorに問い合わせる際の取得間隔時間と最小キーワード文字数を設定できます。

表 サジェスト機能の動作設定

ファイル default.xml
親要素 default-values.system.fullTextSearch.suggest
要素 名称 初期値 説明
search-interval 0 よく検索されるキーワードリストを取得する際の最小間隔時間。
単位:[ms]
サジェストのリストを取得する際にはLuxor側への問い合わせを行う。キーワードが変更されても設定値内であればLuxorへの問い合わせが抑止され、設定時間経過後に問い合わせを行う。なお、サジェストのリストはWEB画面にキャッシュされるため、同じキーワードを入力した場合は設定と関係なく直ちに画面に表示される。
search-min-chars 0 よく検索されるキーワードリストが表示するためキーワードの最小文字数。
記述例 <system.fullTextSearch.suggest>
<search-interval>300</search-interval>
<search-min-chars>0</search-min-chars>
</system.fullTextSearch.suggest>