概要
Fess ではデータベースやCSVなどのデータソースをクロール対象とすることができます。 ここでは、そのために必要なデータストアの設定について説明します。
管理方法
表示方法
下図のデータストアの設定を行うための一覧ページを開くには、左メニューの [クローラ > データストア] をクリックします。

編集するには設定名をクリックします。
設定の作成
データストアの設定ページを開くには新規作成ボタンをクリックします。

設定項目
名前
クロール設定の名前を指定します。
ハンドラ名
データストアを処理するハンドラ名です。
DatabaseDataStore: データベースをクロールする
CsvDataStore: CSV/TSVファイルを対象としてクロールする
CsvListDataStore: インデクシング対象のファイルパスを記述したCSVファイルをクロールする
EsDataStore: Elasticsearchのインデックス内のドキュメントをクロールする
EsListDataStore: インデクシング対象のファイルパスを記述したElasticsearchのインデックス内のドキュメントをクロールする
GitBucketDataStore: GitBucket のリポジトリをクロールする (詳細は GitBucketのFessプラグイン を参照してください)
パラメータ
データストアに関するパラメータを指定します。
スクリプト
データストアから取得した値をどのフィールドに設定するかなどを指定します。 式はGroovyで記述することができます。
ブースト値
この設定でクロールしたときのドキュメントのブースト値を指定します。
パーミッション
この設定のパーミッションを指定します。 パーミッションの指定方法は、たとえば、developerグループに属するユーザーに検索結果を表示させるためには{group}developerと指定します。 ユーザー単位の指定は{user}ユーザー名、ロール単位の指定は{role}ロール名、グループ単位の指定は{group}グループ名で指定します。
仮想ホスト
仮想ホストのホスト名を指定します。 詳しくは 設定ガイドの仮想ホスト を参照してください。
状態
このクロール設定を利用するかどうかを指定します。
説明
説明を入力できます。
設定の削除
一覧ページの設定名をクリックし、削除ボタンをクリックすると確認画面が表示されます。 削除ボタンを押すと設定が削除されます。
例
DatabaseDataStore
データベースクロールについて説明します。
例として、以下のようなテーブルが MySQL の testdb というデータベースにあり、ユーザ名 hoge 、パスワード fuga で接続することができるとして、説明を行います。
ここでは、データは以下のようなものを入れておきます.
パラメータ
パラメータの設定例は以下のようになります。
パラメータは「キー=値」形式となっています。キーの説明は以下です。
| driver | ドライバクラス名 |
| url | URL |
| username | DBに接続する際のユーザ名 |
| password | DBに接続する際のパスワード |
| sql | クロール対象を得るための SQL 文 |
表: DB用設定パラメータ例
スクリプト
スクリプトの設定例は以下のようになります。
パラメータは「キー=値」形式になっています。キーの説明は以下です。
値の側は、Groovy で記述します。 文字列はダブルクォーテーションで閉じてください。データベースのカラム名でアクセスすれば、その値になります。
| url | URL(検索結果に表示されるリンク) |
| host | ホスト名 |
| site | サイトパス |
| title | タイトル |
| content | ドキュメントのコンテンツ(インデックス対象文字列) |
| cache | ドキュメントのキャッシュ(インデックス対象ではない) |
| digest | 検索結果に表示されるダイジェスト部分 |
| anchor | ドキュメントに含まれるリンク(普通は指定する必要はありません) |
| content_length | ドキュメントの長さ |
| last_modified | ドキュメントの最終更新日 |
表: スクリプトの設定内容
ドライバ
データベースに接続する際にはドライバが必要となります。app/WEB-INF/lib に jar ファイルを置いてください。
CsvDataStore
CSVファイルを対象としたクロールについて説明します。
たとえば、/home/taro/csv ディレクトリに test.csv ファイルを以下のような内容で生成しておきます。 ファイルのエンコーディングは Shift_JIS にしておきます。
パラメータ
パラメータの設定例は以下のようになります。
パラメータは「キー=値」形式となっています。キーの説明は以下です。
| directories | CSVファイルが含まれるディレクトリ (.csvまたは.tsv) |
| files | CSVファイル (直接指定する場合) |
| fileEncoding | CSVファイルのエンコーディング |
| separatorCharacter | 区切り文字 |
表: CSVファイル用設定パラメータ例
スクリプト
スクリプトの設定例は以下のようになります。
パラメータは「キー=値」形式になります。 キーはデータベースクロールの場合と同様です。 CSVファイル内のデータは、cell[数字]で保持しています(数字は 1 から始まります)。 CSVファイルのセルにデータが存在しない場合はnullになる場合があります。
EsDataStore
データの取得先がelasticsearchになりますが、基本的な利用方法はCsvDataStoreと同様です。
パラメータ
パラメータの設定例は以下のようになります。
パラメータは「キー=値」形式となっています。キーの説明は以下です。
| settings.* | elasticsearchのSettings情報 |
| hosts | 接続先のelasticsearch |
| index | インデックス名 |
| type | タイプ名 |
| query | 取得する条件のクエリー |
表: elasticsearch用設定パラメータ例
スクリプト
スクリプトの設定例は以下のようになります。
パラメータは「キー=値」形式になります。 キーはデータベースクロールの場合と同様です。 source.*により値を取得して、設定することができます。