全文検索
最終更新日: 2022年9月1日
R8 | R9
全文検索機能は、利用するリレーショナルデータベースとは別に検索専用のインデックスファイルを利用します。次のようなアプリケーションに向いています。
顧客モデルの「氏名」「備考」項目に全文検索を適用した例です。検索画面は「通常検索」と「全文検索」の二つのタブが用意されます。
全文検索タブを開いたところを図2に示します。入力欄は1つのみとなります。これでモデル内の(全文検索を指定した)項目を横断的に検索します。
検索結果の一覧表示画面を図3に示します。全文検索では一覧表示の方法も異なっています。全文検索の対象とした項目の内容が表示され、かつキーワードの部分は強調(太字)となります。
項目「氏名」は検索条件に使う、という設定を行っています。
全文検索に関するその他の設定は次のとおりです。
全文検索に使用する項目のうちいずれか一つに本設定を適用してください。検索結果表示時のタイトルとして利用します。
この二つはサジェストの設定で利用します。
次節で説明します。
添付ファイルの内容も全文検索の対象とすることができます。Word, Excel, PowerPoint, PDF といったバイナリファイルおよび TEXT, HTML, RTF, XML といったテキストファイルに対応しています。
PDFファイルに含まれる文字列で検索した例を図5に示します。
画面上の「+」ボタンを押下すると、ファイル内容の詳細が表示されます。ボタンは「-」に変わります。(図6)
ファイル型項目を用意し、検索対象とします。さらに全文検索を有効にすると同時に「ファイルの内容を検索する」を有効にします。
「環境 > アプリケーション」タブを開きます。「全文検索 > 文字抽出プログラム」に "Tika" を指定します。(*1)
全文検索とは
例と定義方法
例
定義方法
この状態で「モデル項目詳細定義 > 検索制御 > 全文検索」にある「全文検索を行う」を有効にします。
検索結果のタイトルに使用する
文字列の一致方法
候補リストの同時表示数
ファイルの内容を検索する
添付ファイルの内容を検索する
項目の設定
文字抽出プログラムの指定
データ一件に格納できる最大文字数
「データ一件に格納できる最大文字数」を指定することができます。未指定時は330 万文字となります。 この値を超える文字は、インデックス作成の対象とならないため、検索されません。
あまり大きな文字数を指定すると、インデックス作成に時間がかかり、メモリ不足となる可能性もあります。 業務要件に合わせた数字を設定してください。以下、設定時の目安を示します。
- 新聞の朝刊がおよそ 40 〜 50 万文字であると言われています。(標準値はおおよそ朝刊 7 日分に相当します。)
- 繰り返しコンテナにファイル添付ができるようなモデルを定義した場合、複数ファイルの合算文字数の上限となります。
仕様・制約
検索キーワードの入力ルール
全文検索タブにおける検索キーワードの入力ルールは次のとおりです。
ルール | 説明 | 例 |
---|---|---|
AND 検索 | 複数のキーワードがすべて含まれるデータを検索します。 | 東京 ニューヨーク ロンドン |
OR 検索 | いずれかのキーワードがすべて含まれるデータを検索します。先頭に OR と指定します。 | OR 東京 ニューヨーク ロンドン |
- 複数キーワードを指定する場合は「半角スペース」または「全角スペース」で区切ります。
- 全角スペースそのものを検索する場合、二重引用符で括ってください。
- "OR" は半角文字をお使いください。大文字、小文字は区別しません。
- キーワードは二文字以上が必要です。一文字のキーワードでは検索できません。
表示順序
全文検索機能を用いた場合は「検索語の一致度の高さ」を基準にして検索結果の一覧が表示されます。 通常の Wagby による一覧表示とは異なり、項目毎の並び替え機能は動作しません。
指定できる項目
全文検索機能の対象となる項目は以下の通りです。
項目の形態 | 項目の型 |
---|---|
(繰り返しでない)単一項目 | 文字列、ファイル名 |
繰り返し項目 | 文字列 |
繰り返しコンテナ内の項目 | 文字列、ファイル名 |
さらに次の条件を満たす必要があります。
- 参照権限(条件付き)が設定されていないこと。
- 一覧表示画面で隠し項目に設定されていないこと。
この条件を満たさない項目は全文検索機能の対象となりません。(「全文検索機能を使用する」を有効にしても無視されます。)
詳細画面は必要
全文検索を有効にしたモデルは、詳細画面を作成するようにしてください。一覧表示から詳細表示画面へのリンクが常に用意されます。
通常検索との関係
暗黙条件やデータ権限、検索条件の初期値設定などがあった場合、通常検索の結果と全文検索の結果はマージされます。具体的には通常検索と全文検索のそれぞれの結果の積集合が、検索結果となります。
さらに通常検索の検索条件として利用者が設定した値(数値、日付、全文検索の対象となっていない文字列型)の絞り込み条件も適用されます。例えば通常検索で日付範囲指定を行い、かつ全文検索で特定のキーワードを指定することができます。(*2) 8.2.2
これらのルールから、Wagby の全文検索は単なる文字列検索ではなく、Wagbyの暗黙条件やデータ権限を考慮し、かつ通常検索とのAND検索を行なった結果を表示します。
全文検索: 全文検索対象項目に対して指定されたキーワードで検索を行う。
通常検索: 全文検索対象項目を除いた検索項目を使ってRDB検索を行う。
これらの結果より、主キーが同じもの(積集合)が検索結果として表示されるようになります。
検索結果数の上限
全文検索結果の上限は 1000 件となっています。1000件以上の結果となる場合は、検索語を追加する、または通常検索の条件を追加するなどして、検索結果を絞り込むようにしてください。
その他
- サブデータベースには対応していません。
- 更新を別システムから行うような運用では、検索用のインデックスファイルが更新されません。そのため検索用インデックスファイルをジョブを使って夜間に更新するなどの対応を行ってください。(更新がリアルタイムで全文検索対象になることはありませんが、時間差で検索できる、という運用を行うことができます。)
インデックスファイルについて
サジェスト機能
全文検索の応用例に「サジェスト検索」があります。 詳細は"他モデルの参照 > サジェスト"をお読みください。