フィールド指定検索
特定のフィールドだけを対象にした検索(フィールド検索)を行うことで、タイトルだけ・URLだけといった絞り込みができます。
Fess でクロールした結果は、タイトルや本文などのフィールドごとに保存されています。それらのフィールドを指定して検索することで、ドキュメントの種類別やサイズ別など、細かい検索条件を指定できます。
利用可能なフィールド
デフォルトでは、以下のフィールドを指定して検索できます。
| フィールド名 | 説明 | データ型 |
|---|---|---|
| url | クロールした URL | キーワード |
| host | クロールした URL に含まれるホスト名 | キーワード |
| site | URL からスキームとクエリー文字列を除いた文字列(ホスト名とパス)。前方一致で検索されます | キーワード |
| title | タイトル | テキスト |
| content | 本文 | テキスト |
| content_length | ドキュメントのサイズ(バイト) | 数値 |
| last_modified | ドキュメントの最終更新日時 | 日時 |
| timestamp | ドキュメントの登録日時(最終更新日時を取得できない場合はクロール実行時刻) | 日時 |
| mimetype | ドキュメントの MIME タイプ(例: text/html) | キーワード |
| filetype | MIME タイプから決まるファイル種別(例: html、word、pdf。該当しない場合は others) | キーワード |
| filename | URL のパス末尾のファイル名 | キーワード |
| label | ドキュメントに付与されたラベルの値 | キーワード |
| lang | ドキュメントの言語コード(例: ja、en) | キーワード |
| anchor | HTML ページ内から抽出したリンク先 URL(Web クロールのみ) | キーワード |
| click_count | ドキュメントがクリックされた回数 | 数値 |
| favorite_count | ドキュメントがお気に入り登録された回数 | 数値 |
| owner | ファイルの所有者のアカウント名 | キーワード |
| last_modifier | ファイルの最終更新者 | キーワード |
表: 利用可能なフィールド一覧
「データ型」は、フィールドごとの検索方法の違いを表します。
キーワード: 値全体を対象に完全一致で検索します。ワイルドカード検索やプレフィックス検索と組み合わせることもできます。
テキスト: 形態素解析などで分割された語を対象に全文検索します。title や content が該当します。
数値・日時: 範囲指定検索 を利用できます。
フィールドを指定しない場合は、title および content を対象に検索します。設定によって、検索対象とするフィールドを追加することもできます。
注釈
クロール対象によっては値が登録されないフィールドもあります。たとえば anchor は Web クロール時のみ登録されます。lang には、HTML の言語属性、または本文から判定した言語が登録されます。言語を判定できない場合や、判定した言語が supported.languages にない場合は登録されません。また、segment(クロール実行単位を表すセッション ID)や doc_id(システムが採番する内部 ID)などのフィールドも指定できますが、通常の検索では利用しません。
owner と last_modifier は、ファイルサーバーなどのクロールで登録されます。owner には SMB、ファイルシステム、FTP のクロールで取得したファイルの所有者のアカウント名が入ります( DOMAIN\alice のような値は alice になります)。last_modifier には Office 文書などから抽出した最終更新者が入り、取得できない場合は所有者が入ります。Web クロールした HTML には owner は登録されません。たとえば owner:alice や last_modifier:"Taro Yamada" のように検索します。同梱のテーマでは、詳細検索で所有者と最終更新者を指定できます。登録するかどうかは、管理者が crawler.document.file.owner.enabled と crawler.document.file.last.modifier.enabled (どちらもデフォルトは true )で切り替えられます。
HTML ファイルを検索対象としている場合、title タグが title フィールドに、body タグ以下の文字列が content フィールドに登録されます。
利用方法
フィールド指定検索をする場合は、「フィールド名:検索語」のように、フィールド名と検索語をコロン(:)で区切って検索フォームに入力します。
title フィールドに対して fess を検索語として検索する場合は、以下のように入力します。
上記の検索により、title フィールドに fess が含まれるドキュメントが検索結果として表示されます。
url フィールドに対して検索する場合は、以下のように入力します。
前者はワイルドカード検索が使えるので、 url:*\/\/fess.codelibs.org\/* のような書き方もできます。url に含まれる「:」や「/」は検索クエリーの特殊文字なので、\ を付けてエスケープしてください(特殊文字 を参照)。後者はワイルドカード検索は使えませんが、末尾を * にした語はプレフィックス(前方一致)検索として扱われます。
Tip
URL の一部で検索したい場合は、inurl: を使うと URL に対する部分一致検索ができます。たとえば inurl:15.9 は、URL に 15.9 を含むドキュメントを検索します。
mimetype や filetype、site のように値に「/」を含むフィールドを指定する場合は、mimetype:"text/html" のように引用符で囲むか、mimetype:text\/html のようにエスケープしてください。