Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

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

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リクエストになるようです。

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?