概要
CSVコネクタは、CSVファイルからデータを取得して Fess のインデックスに登録する機能を提供します。
この機能には fess-ds-csv プラグインが必要です。
前提条件
プラグインのインストールが必要です
CSVファイルへのアクセス権が必要です
CSVファイルの文字エンコーディングを把握している必要があります
プラグインのインストール
方法1: JARファイルを直接配置
方法2: 管理画面からインストール
「システム」→「プラグイン」を開く
JARファイルをアップロード
Fess を再起動
設定方法
管理画面から「クローラー」→「データストア」→「新規作成」で設定します。
基本設定
| 項目 | 設定例 |
|---|---|
| 名前 | Products CSV |
| ハンドラ名 | CsvDataStore |
| 有効 | オン |
パラメーター設定
ローカルファイル:
複数ファイル:
パラメーター一覧
| パラメーター | 必須 | 説明 |
|---|---|---|
files | はい | CSVファイルのパス(複数指定可:カンマ区切り) |
file_encoding | いいえ | 文字エンコーディング(デフォルト: UTF-8) |
has_header_line | いいえ | ヘッダー行の有無(デフォルト: true) |
separator_character | いいえ | 区切り文字(デフォルト: カンマ ,) |
quote_character | いいえ | 引用符(デフォルト: ダブルクォート ") |
スクリプト設定
ヘッダーありの場合:
ヘッダーなしの場合(列インデックス指定):
利用可能なフィールド
data.<列名>- ヘッダー行の列名(has_header_line=true の場合)data.cell<N>- 列インデックス(has_header_line=false の場合、0始まり)
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形式では、引用符で囲むことで改行を含むフィールドを扱えます:
パラメーター:
スクリプトの高度な使用例
データの加工
条件付きインデックス
複数列の結合
日付のフォーマット
参考情報
データストアコネクタの概要 - データストアコネクタ概要
JSONコネクタ - JSONコネクタ
データベースコネクタ - データベースコネクタ
データストアクロール - データストア設定ガイド