概要
CSVコネクタは、CSVファイルからデータを取得して Fess のインデックスに登録する機能を提供します。
この機能には fess-ds-csv プラグインが必要です。
前提条件
プラグインのインストールが必要です
CSVファイルへのアクセス権が必要です
CSVファイルの文字エンコーディングを把握している必要があります
プラグインのインストール
方法1: JARファイルを直接配置
方法2: 管理画面からインストール
「システム」→「プラグイン」を開く
JARファイルをアップロード
Fess を再起動
設定方法
管理画面から「クローラー」→「データストア」→「新規作成」で設定します。
基本設定
| 項目 | 設定例 |
|---|---|
| 名前 | Products CSV |
| ハンドラ名 | CsvDataStore |
| 有効 | オン |
パラメーター設定
ローカルファイル:
複数ファイル:
パラメーター一覧
高度なパラメーター
以下のパラメーターはCSVの解析動作を細かく制御します:
| パラメーター | 説明 |
|---|---|
skip_lines | スキップする先頭行数 |
ignore_line_patterns | 無視する行の正規表現パターン |
ignore_empty_lines | 空行を無視するか(デフォルト: false) |
ignore_trailing_whitespaces | 末尾の空白を無視するか(デフォルト: false) |
ignore_leading_whitespaces | 先頭の空白を無視するか(デフォルト: false) |
null_string | null値として扱う文字列 |
break_string | 改行の置換文字列 |
escape_disabled | エスケープ処理を無効にするか(デフォルト: false) |
quote_disabled | 引用符処理を無効にするか(デフォルト: false) |
スクリプト設定
ヘッダーありの場合:
ヘッダーなしの場合(列インデックス指定):
利用可能なフィールド
data.<列名>- ヘッダー行の列名(has_header_line=true の場合)data.cell<N>- 列インデックス(has_header_line=false の場合、cell1、cell2...のように1始まり)data.csvfile- 処理中のCSVファイルのフルパスdata.csvfilename- 処理中のCSVファイル名
CSV形式の詳細
標準CSV(RFC 4180準拠)
セパレーターの変更
タブ区切り(TSV):
セミコロン区切り:
カスタム引用符
シングルクォート:
エンコーディング
日本語ファイル(Shift_JIS):
日本語ファイル(EUC-JP):
使用例
製品カタログのCSV
CSVファイル(products.csv):
パラメーター:
スクリプト:
在庫情報のフィルタリング:
社員名簿のCSV
CSVファイル(employees.csv):
パラメーター:
スクリプト:
ヘッダーなしのCSV
CSVファイル(data.csv):
パラメーター:
スクリプト:
複数CSVファイルの統合
パラメーター:
スクリプト:
タブ区切り(TSV)ファイル
TSVファイル(data.tsv):
パラメーター:
スクリプト:
トラブルシューティング
ファイルが見つからない
症状: FileNotFoundException または No such file
確認事項:
ファイルパスが正しいか確認(絶対パス推奨)
ファイルが存在するか確認
ファイルの読み取り権限があるか確認
Fess 実行ユーザーからアクセス可能か確認
文字化けが発生する
症状: 日本語が正しく表示されない
解決方法:
正しい文字エンコーディングを指定:
ファイルのエンコーディングを確認:
列が正しく認識されない
症状: 列の区切りが正しく認識されない
確認事項:
区切り文字が正しいか確認:
引用符の設定を確認
CSVファイルの形式を確認(RFC 4180準拠か)
ヘッダー行の扱い
症状: 1行目がデータとして認識される
解決方法:
ヘッダー行がある場合:
ヘッダー行がない場合:
データが取得できない
症状: クロールは成功するが件数が0
確認事項:
CSVファイルが空でないか確認
スクリプト設定が正しいか確認
列名が正しいか確認(has_header_line=true の場合)
ログでエラーメッセージを確認
大きなCSVファイル
症状: メモリ不足またはタイムアウト
解決方法:
CSVファイルを複数に分割
必要な列のみをスクリプトで使用
Fess のヒープサイズを増やす
不要な行をフィルタリング
改行を含むフィールド
RFC 4180形式では、引用符で囲むことで改行を含むフィールドを扱えます:
パラメーター:
CsvListDataStore
fess-ds-csv プラグインには、 CsvDataStore に加えて CsvListDataStore ハンドラも含まれています。
CsvListDataStore は CsvDataStore を拡張し、以下の追加機能を提供します:
マルチスレッド処理(
num_of_threadsパラメーターで制御)処理済みCSVファイルの自動削除
タイムスタンプベースのファイルフィルタリング(書き込み中のファイルをスキップ)
基本設定
| 項目 | 設定例 |
|---|---|
| ハンドラ名 | CsvListDataStore |
追加パラメーター
注釈
CsvListDataStore は処理完了後にCSVファイルを自動的に削除します。処理中にエラーが発生した場合、ファイルは .txt にリネームされます。
スクリプトの高度な使用例
データの加工
条件付きインデックス
複数列の結合
日付のフォーマット
参考情報
データストアコネクタの概要 - データストアコネクタ概要
JSONコネクタ - JSONコネクタ
データベースコネクタ - データベースコネクタ
データストアクロール - データストア設定ガイド