マスターデータ全文検索
SURP MDMの全文検索機能を使って、マスターデータを高速に検索できます。PostgreSQLの全文検索エンジンを活用した、日本語対応の強力な検索機能です。
📋 概要
全文検索機能は、マスターデータのすべてのフィールドを横断して検索できる機能です。
主な特徴
- 高速検索: PostgreSQLの全文検索インデックスを活用
- 日本語対応: ひらがな、カタカナ、漢字にも対応
- 複数キーワード: スペース区切りでAND検索
- 部分一致: キーワードの一部でもヒット
- 全フィールド対象: すべての文字列フィールドが検索対象
🔍 検索方法
基本的な使い方
ステップ1: マスター一覧を開く
- ダッシュボード → マスターデータ
- 検索したいマスターを選択
ステップ2: 検索ボックスに入力
- 画面上部の検索ボックスにキーワードを入力
- Enterキーを押すか、虫眼鏡アイコンをクリック
ステップ3: 検索結果を確認
- マッチしたレコードが一覧表示されます
- ハイライト表示で、どのフィールドがヒットしたか確認できます
💡 検索例
例1: 単一キーワード検索
検索キーワード: 山田
ヒットする例:
- 氏名フィールドに「山田太郎」
- 住所フィールドに「山田町1-2-3」
- 備考フィールドに「山田さんから依頼」
例2: 複数キーワード検索(AND)
検索キーワード: 東京 営業
ヒットする例:
- 住所「東京都渋谷区」+ 部署「営業部」
- 備考「東京支社の営業担当」
ヒットしない例:
- 住所「東京都渋谷区」のみ(「営業」がない)
- 部署「営業部」のみ(「東京」がない)
例3: 部分一致検索
検索キーワード: パソコン
ヒットする例:
- 商品名「ノートパソコン」
- 商品名「デスクトップパソコン」
- 説明「パソコン周辺機器」
例4: 数値検索
検索キーワード: 12345
ヒットする例:
- 商品コード「P-12345」
- 郵便番号「123-4567」
- 電話番号「03-1234-5678」
🎯 検索対象フィールド
検索される フィールド型
全文検索は、以下のフィールド型が対象です:
- 文字列(String): すべての文字列フィールド
- テキスト(Text): 長文フィールド
- メール(Email): メールアドレス
- URL: URLフィールド
- 電話番号(Phone): 電話番号フィールド
- 郵便番号(Postal Code): 郵便番号フィールド
検索されないフィールド型
以下のフィールド型は全文検索の対象外です:
- 数値(Number)
- 日付(Date)
- 真偽値(Boolean)
- ファイル(File)
- 選択肢(Select)※ 選択肢の値は検索されますが、ラベルは検索されません
⚡ 検索のヒント
より良い検索結果を得るために
1. 具体的なキーワードを使う
良い例: 営業部 東京
悪い例: 営業 (結果が多すぎる)
2. スペースでAND検索
複数のキーワードをスペースで区切ると、すべてのキーワードを含むレコードのみがヒットします。
例: 山田 太郎 営業 → 「山田」「太郎」「営業」すべてを含むレコード
3. 短いキーワードは避ける
1〜2文字のキーワードは、ヒット数が多すぎる可能性があります。
良い例: マウス
悪い例: マ (ヒットが多すぎる)
4. 表記ゆれに注意
全文検索は完全一致ではありませんが、表記が大きく異なると検索できません。
例:
- 「株式会社」と検索 → 「(株)」はヒットしない
- 「コンピューター」と検索 → 「コンピュータ」はヒットしない場合あり
🔧 検索の仕様
検索アルゴリズム
SURP MDMはPostgreSQLの全文検索機能(to_tsvector / to_tsquery)を使用しています。
特徴:
- 部分一致: キーワードの一部でもヒット
- AND検索: 複数キーワードはすべて含む必要がある
- 大文字小文字を区別しない: 「ABC」と「abc」は同じ
検索パフォーマンス
- 10万件以下: ほぼ瞬時に結果表示
- 10万件以上: 数秒〜10秒程度
- 100万件以上: インデックスが最適化されていれば10秒以内
大規模データでも高速に検索できるよう、PostgreSQLの全文検索インデックスが自動的に作成されます。
🚫 検索できない場合
よくある問題と対処法
問題1: 検索結果が0件
原因:
- キーワードのスペルが間違っている
- すべてのキーワードを含むレコードが存在しない
- 検索対象外のフィールド型のみを検索している
対処法:
- キーワードを減らす(AND検索の条件を緩める)
- スペルを確認する
- フィルター機能と併用する
問題2: 検索が遅い
原因:
- データ量が非常に多い(100万件以上)
- データベースのインデックスが作成されていない
対処法:
- フィルター機能で事前に絞り込む
- 管理者に連絡してインデックスを確認してもらう
💡 フィルターとの併用
全文検索とフィルター機能を併用すると、より精度の高い検索ができます。
使用例
シナリオ: 東京在住の営業部社員を検索
手順:
- フィルターで部署 = 「営業部」を設定
- 全文検索で「東京」と検索
結果: 営業部の中で、住所に「東京」を含む社員のみ表示