FESSは全文検索のエンジン、クローラ、検索ダッシュボード等一式を取り揃えたOSSです。
Googleライクな検索システムが簡単につくれるので便利です。今回はそのFESSに対して、APIベースで操作する方法のメモです。
検索処理をAPIを用いて実行する場合
まずは検索をAPIを用いて実行する場合の呼び出し方です。
APIのURLは、以下のフォーマットで呼び出し可能です。
$ curl -XGET "http://FESSサーバIP:8080/json?q=キーワード
q以外のその他検索オプションはこちらを参考にしてください。
クローリング設定等管理設定をAPIを用いて実行する場合
次に、管理設定系の操作です。FESSは管理設定系の操作もAPIベースで実行できるようになっています。
検索系とは異なるので少し注意が必要です。
管理設定系は/api/adminというパスで行うことが可能です。
手順としては以下の通り。
アクセストークンの発行
FESSの管理画面にログイン後、アクセストークンを発行します。
「管理→システム→アクセストークン」 の新規作成から実行できます。
作成時、パーミッションに***{role}admin-api***を設定してAdmin APIへの権限を付与します。
保存すると自動的にトークンが払い出されるのでこの内容をメモしておきます。
curlを用いてAPI呼び出し
例として、クローラ設定を1件追加してみます。
パラメータの詳細は
https://fess.codelibs.org/11.4/lastadoc-fess.html#.api.admin.fileconfig.setting::put_d_setting
この辺りを参考にしました。
$ curl -H "Authorization: 払い出されたアクセストークン" -XPUT "http://FESSサーバIP:8080/api/admin/fileconfig/setting" -d '{"name":"test crawler","paths":"file:/tmp/data/","num_of_thread":5,"interval_time":1000,"boost":1.0,"permissions":"{role}guest","available":1,"sort_order":1}'
{"response":
{
"id":"AWQWxxxxxxxxxxx",
"created":true,
"version":"11.3",
"status":0
}
}
ポイントはリクエストヘッダーにAuthorizationを指定して先程払い出したアクセストークンを指定することです。
あと、新規作成系はPUTリクエストになるようです。
最低限必須とされている上記のパラメータの指定が必要となります。
これで管理設定も自動化できます。