LoginSignup
3
3

More than 1 year has passed since last update.

Fessのデータストアクロール CsvListDataStore を設定する

Last updated at Posted at 2021-08-17

何をしたいか

対象ファイルパスをリスト化したcsvファイルを用意し、Fessにそのファイルを読み込ませてクロールさせたい。
Fess公式に詳しい解説があるが、若干のわかりづらさを感じたため、実際に確認した内容のまとめ記事にする。

バージョン等

Fess 13.13.0
Elasticsearch 7.13.0
CentOS 8.4

オープンソース全文検索サーバー Fess
https://fess.codelibs.org/ja/index.html
Elasticsearch
https://www.elastic.co/jp/elasticsearch/

公式の解説

公式の解説 データストアクロール
https://fess.codelibs.org/ja/13.13/admin/dataconfig-guide.html

csv作成

フォーマット

csv
modify,smb://servername/data/testfile1.txt
modify,smb://servername/data/testfile2.txt
modify,smb://servername/data/testfile3.txt

カラム1はそのファイルがどう操作されたのかのアクション。テストならmodifyにすると新規でも更新でも動く。

create:ファイルが作成された
modify:ファイルが更新された
delete:ファイルが削除された

カラム2はファイルパス。区切り文字はデフォルト/。Windowsサーバーでも/で書くこと。
fileプロトコルでも書けるらしいのだが、うまくいかない。ファイルクロールの場合はfileでもsmbでもうまくいったのだが…。あえてfileで書く意味は特にないので、smbを使うことにする。

ダブルクォーテーション囲みは無しにする。パラメータ指定で囲みあり+囲み文字を無視する設定がうまくいかなかっため。この件は別途確認したい。

文字エンコード

今回はLinux版なのでUTF-8で保存。

クロール設定

名前はただの名前なので適当に。
ハンドラー名はCsvListDataStoreを選択。

パラメーター

パラメーター
files=/home/crawletest.csv
fileEncoding=UTF-8
crawler.file.auth=servername
crawler.file.auth.servername.scheme=SAMBA
crawler.file.auth.servername.username=username
crawler.file.auth.servername.password=password

files / directories

1ファイルの場合はfiles指定。
directoriesで指定するとディレクトリ内の.csvと.tsvを全部読む。directories=/home/taro/csvなど。

fileEncoding

UTF-8と書かないと読めない。Utf-8やutf-8やutf8ではだめ。
シフトJISはShift_JIS

crawler.file.auth

クロール先ファイルサーバの認証情報。公式解説だとどこに記述するかわかりづらいがこれはパラメータに設定する。
passwordは暗号化されて保存される。

その他の設定

今回の確認では使わなかったパラメータ設定
https://news.mynavi.jp/itsearch/article/devsoft/4761

quoteDisabled=false

csv内で囲み文字が使われている場合に設定…らしい。
囲み文字"入りのcsvで正常に動作させることができなかったため、別途調査と確認する。

skipLines=1

csv先頭から指定行数を読み飛ばす。1行目がカラム名になっていて読み飛ばしたい場合など。

スクリプト

スクリプト
event_type=cell1
url=cell2

これは公式コピペでいい。csvの中身が何なのかを指定している。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3