全文検索

最終更新日: 2022年9月1日
R8 | R9

全文検索とは

全文検索機能は、利用するリレーショナルデータベースとは別に検索専用のインデックスファイルを利用します。次のようなアプリケーションに向いています。

  • 大量の文字情報を高速に検索する。
  • 添付ファイルの内容を高速に検索する。

例と定義方法

顧客モデルの「氏名」「備考」項目に全文検索を適用した例です。検索画面は「通常検索」と「全文検索」の二つのタブが用意されます。

図1 通常検索と全文検索

全文検索タブを開いたところを図2に示します。入力欄は1つのみとなります。これでモデル内の(全文検索を指定した)項目を横断的に検索します。

図2 全文検索タブ

検索結果の一覧表示画面を図3に示します。全文検索では一覧表示の方法も異なっています。全文検索の対象とした項目の内容が表示され、かつキーワードの部分は強調(太字)となります。

図3 全文検索の一覧表示

定義方法

項目「氏名」は検索条件に使う、という設定を行っています。
この状態で「モデル項目詳細定義 > 検索制御 > 全文検索」にある「全文検索を行う」を有効にします。

図4 全文検索の設定

全文検索に関するその他の設定は次のとおりです。

検索結果のタイトルに使用する

全文検索に使用する項目のうちいずれか一つに本設定を適用してください。検索結果表示時のタイトルとして利用します。

どの項目にも、本設定を行っていなかった場合、最初にみつかった「全文検索を行う」モデル項目をタイトルとして使用します。8.4.0

文字列の一致方法

候補リストの同時表示数

この二つはサジェストの設定で利用します。

ファイルの内容を検索する

次節で説明します。

添付ファイルの内容を検索する

添付ファイルの内容も全文検索の対象とすることができます。Word, Excel, PowerPoint, PDF といったバイナリファイルおよび TEXT, HTML, RTF, XML といったテキストファイルに対応しています。

PDFファイルに含まれる文字列で検索した例を図5に示します。

図5 PDFファイルの全文検索

画面上の「+」ボタンを押下すると、ファイル内容の詳細が表示されます。ボタンは「-」に変わります。(図6)

図6 PDFファイルの内容(一部)が表示される

項目の設定

ファイル型項目を用意し、検索対象とします。さらに全文検索を有効にすると同時に「ファイルの内容を検索する」を有効にします。

図7 ファイルの内容を検索する設定

文字抽出プログラムの指定

「環境 > アプリケーション」タブを開きます。「全文検索 > 文字抽出プログラム」に "Tika" を指定します。(*1)

1. Apache Tika はオープンソースのテキスト文字列抽出ライブラリです。Wagbyに標準で同梱されています。

図8 文字抽出プログラムの設定

データ一件に格納できる最大文字数

「データ一件に格納できる最大文字数」を指定することができます。未指定時は330 万文字となります。 この値を超える文字は、インデックス作成の対象とならないため、検索されません。

あまり大きな文字数を指定すると、インデックス作成に時間がかかり、メモリ不足となる可能性もあります。 業務要件に合わせた数字を設定してください。以下、設定時の目安を示します。

  • 新聞の朝刊がおよそ 40 〜 50 万文字であると言われています。(標準値はおおよそ朝刊 7 日分に相当します。)
  • 繰り返しコンテナにファイル添付ができるようなモデルを定義した場合、複数ファイルの合算文字数の上限となります。

仕様・制約

検索キーワードの入力ルール

全文検索タブにおける検索キーワードの入力ルールは次のとおりです。

ルール 説明
AND 検索 複数のキーワードがすべて含まれるデータを検索します。 東京 ニューヨーク ロンドン
OR 検索 いずれかのキーワードがすべて含まれるデータを検索します。先頭に OR と指定します。 OR 東京 ニューヨーク ロンドン
  • 複数キーワードを指定する場合は「半角スペース」または「全角スペース」で区切ります。
  • 全角スペースそのものを検索する場合、二重引用符で括ってください。
  • "OR" は半角文字をお使いください。大文字、小文字は区別しません。
  • キーワードは二文字以上が必要です。一文字のキーワードでは検索できません。

表示順序

全文検索機能を用いた場合は「検索語の一致度の高さ」を基準にして検索結果の一覧が表示されます。 通常の Wagby による一覧表示とは異なり、項目毎の並び替え機能は動作しません。

指定できる項目

全文検索機能の対象となる項目は以下の通りです。

項目の形態 項目の型
(繰り返しでない)単一項目 文字列、ファイル名
繰り返し項目 文字列
繰り返しコンテナ内の項目 文字列、ファイル名

さらに次の条件を満たす必要があります。

  • 参照権限(条件付き)が設定されていないこと。
  • 一覧表示画面で隠し項目に設定されていないこと。

この条件を満たさない項目は全文検索機能の対象となりません。(「全文検索機能を使用する」を有効にしても無視されます。)

詳細画面は必要

全文検索を有効にしたモデルは、詳細画面を作成するようにしてください。一覧表示から詳細表示画面へのリンクが常に用意されます。

通常検索との関係

暗黙条件やデータ権限、検索条件の初期値設定などがあった場合、通常検索の結果と全文検索の結果はマージされます。具体的には通常検索と全文検索のそれぞれの結果の積集合が、検索結果となります。

さらに通常検索の検索条件として利用者が設定した値(数値、日付、全文検索の対象となっていない文字列型)の絞り込み条件も適用されます。例えば通常検索で日付範囲指定を行い、かつ全文検索で特定のキーワードを指定することができます。(*2) 8.2.2

これらのルールから、Wagby の全文検索は単なる文字列検索ではなく、Wagbyの暗黙条件やデータ権限を考慮し、かつ通常検索とのAND検索を行なった結果を表示します。

2.全文検索と通常検索の検索結果をマージする動作の詳細は次の通りです。
 全文検索: 全文検索対象項目に対して指定されたキーワードで検索を行う。
 通常検索: 全文検索対象項目を除いた検索項目を使ってRDB検索を行う。
これらの結果より、主キーが同じもの(積集合)が検索結果として表示されるようになります。

検索結果数の上限

全文検索結果の上限は 1000 件となっています。1000件以上の結果となる場合は、検索語を追加する、または通常検索の条件を追加するなどして、検索結果を絞り込むようにしてください。

その他

インデックスファイルについて

全文検索・サジェストのために利用する検索用インデックスファイルはデータベースとは別に作成されます。詳細...

サジェスト機能

全文検索の応用例に「サジェスト検索」があります。 詳細は"他モデルの参照 > サジェスト"をお読みください。