メニュー

検索機能

概要

Fess は強力な全文検索機能を提供します。 本セクションでは、検索機能の詳細設定と利用方法について説明します。

検索結果件数の表示

デフォルトの動作

検索結果が 10,000 件を超える場合、検索結果画面での件数表示は「約 10,000 件以上」と表示されます。 これは、OpenSearch のパフォーマンスを考慮したデフォルトの設定です。

検索例

image0

正確なヒット件数の表示

10,000 件以上の正確なヒット件数を表示する場合は、fess_config.properties で以下の設定を変更します。

query.track.total.hits=100000

この設定により、最大 100,000 件までの正確なヒット件数を取得できます。 ただし、大きな値を設定するとパフォーマンスに影響する可能性があります。

警告

値を大きくしすぎると検索パフォーマンスが低下する可能性があります。 実際の利用状況に応じて適切な値を設定してください。

検索オプション

基本的な検索

Fess では、検索ボックスにキーワードを入力するだけで全文検索が実行されます。 複数のキーワードを入力すると、AND検索が実行されます。

検索 エンジン

上記の例では、「検索」と「エンジン」の両方を含むドキュメントが検索されます。

OR検索

OR検索を実行する場合は、キーワード間に OR を挿入します。

検索 OR エンジン

NOT検索

特定のキーワードを除外する場合は、キーワードの前に - (マイナス記号)を付けます。

検索 -エンジン

フレーズ検索

完全一致のフレーズを検索する場合は、ダブルクォーテーションで囲みます。

"検索エンジン"

フィールド指定検索

特定のフィールドを指定して検索することができます。

title:検索エンジン
url:https://fess.codelibs.org/

主なフィールド:

  • title: ドキュメントのタイトル

  • content: ドキュメントの本文

  • url: ドキュメントのURL

  • filetype: ファイルタイプ(例: pdf, html, doc)

  • label: ラベル(分類)

ワイルドカード検索

ワイルドカードを使用した検索が可能です。

  • *: 0文字以上の任意の文字列

  • ?: 任意の1文字

検索*
検索?ジン

ファジー検索

スペルミスや表記揺れに対応したファジー検索が利用できます。 デフォルトでは、4文字以上のキーワードに対して自動的にファジー検索が適用されます。

検索エンジン~

~ の後に数値を指定することで、編集距離を指定できます。

検索結果のソート

検索結果は、デフォルトでは関連度順にソートされます。 管理画面の設定やAPIパラメータで、以下のようなソート順を指定できます。

  • 関連度順(デフォルト)

  • 更新日時順

  • 作成日時順

  • ファイルサイズ順

ファセット検索

ファセット検索を使用すると、検索結果をカテゴリ別に絞り込むことができます。 デフォルトでは、ラベル(label)フィールドがファセットとして設定されています。

検索画面の左側に表示されるファセットをクリックすることで、検索結果を絞り込むことができます。

検索結果のハイライト

検索キーワードは、検索結果のタイトルと要約部分でハイライト表示されます。 ハイライトの設定は fess_config.properties でカスタマイズできます。

query.highlight.tag.pre=<strong>
query.highlight.tag.post=</strong>
query.highlight.fragment.size=60
query.highlight.number.of.fragments=2

サジェスト機能

検索ボックスに文字を入力すると、サジェスト(入力補完)が表示されます。 サジェストは、過去の検索キーワードや人気のある検索キーワードに基づいて生成されます。

サジェスト機能は、管理画面の「全般」設定で有効/無効を切り替えることができます。

検索ログ

Fess は、すべての検索クエリとクリックログを記録します。 これらのログは、以下の目的で使用できます。

  • 検索品質の分析と改善

  • ユーザー行動の分析

  • 人気の検索キーワードの把握

  • 検索結果が0件のキーワードの特定

検索ログは OpenSearch の fess_log インデックスに保存され、 OpenSearch Dashboards で可視化・分析できます。 詳細は kibana を参照してください。

パフォーマンスチューニング

検索タイムアウトの設定

検索のタイムアウト時間を設定できます。デフォルトは10秒です。

query.timeout=10000

検索クエリの最大文字数

セキュリティとパフォーマンスのため、検索クエリの最大文字数を制限できます。

query.max.length=1000

キャッシュの利用

検索結果のキャッシュを有効にすることで、同じ検索クエリに対するレスポンス時間を短縮できます。 キャッシュの設定は、システムの要件に応じて調整してください。

トラブルシューティング

検索結果が表示されない

  1. インデックスが正しく作成されているか確認してください。

  2. クロールが正常に完了しているか確認してください。

  3. 検索対象のドキュメントにアクセス権限が設定されていないか確認してください。

  4. OpenSearch が正常に動作しているか確認してください。

検索速度が遅い

  1. OpenSearch のヒープメモリサイズを確認してください。

  2. インデックスのシャード数とレプリカ数を最適化してください。

  3. 検索クエリの複雑さを確認してください。

  4. ハードウェアリソース(CPU、メモリ、ディスクI/O)を確認してください。

関連性の低い結果が表示される

  1. ブースト設定を調整してください(query.boost.title, ``query.boost.content``など)。

  2. ファジー検索の設定を見直してください。

  3. Analyzer の設定を確認してください。

  4. 必要に応じて、商用サポートにご相談ください。