LoginSignup
7
5

More than 5 years have passed since last update.

全文検索サービスのOSS「FESS」をAPIを使って操作

Posted at

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への権限を付与します。

fess_1.png

保存すると自動的にトークンが払い出されるのでこの内容をメモしておきます。

curlを用いてAPI呼び出し

例として、クローラ設定を1件追加してみます。
パラメータの詳細は
https://fess.codelibs.org/11.4/lastadoc-fess.html#.api.admin.fileconfig.setting::put_d_setting
この辺りを参考にしました。

Request
$ 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
{"response":
  {
    "id":"AWQWxxxxxxxxxxx",
    "created":true,
    "version":"11.3",
    "status":0
  }
}

ポイントはリクエストヘッダーにAuthorizationを指定して先程払い出したアクセストークンを指定することです。
あと、新規作成系はPUTリクエストになるようです。

最低限必須とされている上記のパラメータの指定が必要となります。

これで管理設定も自動化できます。

7
5
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
7
5