索機能

概要

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. 必要に応じて、商用サポートにご相談ください。