全文検索(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> |