【検索編】Fessが提供するAPIの使い方とPythonでの実行方法

 

【悩み】
・FessではどのようなAPIを提供しているのか?
・Fessの全文検索をAPIから実行することはできる?
・PythonでFessのAPIを実行したい!その方法を知りたい。



こういった「悩み」に答えます。
 

【本記事の内容】
① Fessとは?:Javaベースの全文検索ソフトウェア
② Fessが提供するAPIの一覧と使い方
➂ PythonでFessのAPIを実行する方法



本記事を熟読したことで、15分以内でcurlやPythonからFessの検索APIを実行できました。
 

記事の前半では「Fessとは?」や「インストール手順」を解説します。

記事の後半では「Fessが提供する検索関連のAPIの一覧」や「APIをPythonから実行する方法とプログラム例」を紹介します。
 

この記事を読み終えることで、「API経由でFessの全文検索ができる」状態になります。

 

Fessとは?:Javaベースの全文検索ソフトウェア


Fessとは、Javeで開発された無料で使える全文検索ソフトウェアです。

さらに詳しく「特徴」「ダウンロードから全文検索までの使い方」「インストール方法」などを知りたい方には、以下の記事がオススメです。

>> 【入門編】Fessとは?全文検索システムを5分で作れるOSS!


 

Fessが提供するAPIの一覧と使い方


「Fessが提供するAPIの一覧と使い方」に関してご紹介します。
 

【ご紹介事項】
・検索API:Fessの全文検索結果をJSON形式で取得
・ラベルAPI:Fess に登録されたラベルの一覧をJSON形式で取得
・人気ワードAPI:Fessでよく検索される単語をJSON形式で取得
・Ping API:Fess のサーバーの状態をJSON形式で取得
・サジェストAPI:サジェスト結果をJSON形式で取得
参照:Fessが提供するAPIの一覧(公式サイト)



以降で、上記の各項目に関して解説します。
 

検索API:Fessの全文検索結果をJSON形式で取得

Fessでは、以下の検索APIを使えます。
 

【検索APIの使い方】
・機能
 Fessの全文検索結果をJSON形式で取得できる
・書き方
 http://<FessのIPアドレス:ポート>/json/?q=<キーワード>
・実行例
 curl -l http://localhost:8080/json/?q=test
・実行例の結果
 検索APIのレスポンス(公式サイト)
・参照
 検索APIのリクエストパラメータのリファレンス(公式サイト)


 

ラベルAPI:Fess に登録されたラベルの一覧をJSON形式で取得

Fessでは、以下のラベルAPIを使えます。
 

【ラベルAPIの使い方】
・機能
 Fess に登録されたラベルの一覧をJSON形式で取得できる
・書き方
 http://<FessのIPアドレス:ポート>/json/?type=label
・実行例
 curl -l http://localhost:8080/json/?type=label
・実行例の結果
 以下を参照
・参照
 ラベルAPIのリクエストパラメータのリファレンス(公式サイト)

 

C:\Users\user>curl -l http://localhost:8080/json/?type=label
{"response":{"version":"14.4","status":0,"record_count":1,"result":[{"label":"test", "value":"test"}]}}


 

人気ワードAPI:Fessでよく検索される単語をJSON形式で取得

Fessでは、以下の人気ワードAPIを使えます。
 

【人気ワードAPIの使い方】
・機能
 Fessでよく検索される単語をJSON形式で取得できる
・書き方
 http://<FessのIPアドレス:ポート>/json/?type=popularword
・実行例
 curl -l http://localhost:8080/json/?type=popularword
・実行例の結果
 以下を参照
・参照
 人気ワードAPIのリクエストパラメータのリファレンス(公式サイト)

 

C:\Users\user>curl -l http://localhost:8080/json/?type=popularword
{"response":{"version":"14.4","status":0,"result":["hadoop","\u5343\u8449","postgres","\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3"]}}


 

Ping API:Fess のサーバーの状態をJSON形式で取得

Fessでは、以下のPing APIを使えます。
 

【Ping APIの使い方】
・機能
 Fess のサーバーの状態をJSON形式で取得できる
・書き方
 http://<FessのIPアドレス:ポート>/json/?type=ping
・実行例
 curl -l http://localhost:8080/json/?type=ping
・実行例の結果
 以下を参照
・参照
 Ping APIのリクエストパラメータのリファレンス(公式サイト)

 

C:\Users\user>curl -l http://localhost:8080/json/?type=ping
{"response":{"version":"14.4","status":0,"message":{"status":"green","timed_out":false}}}


 

サジェストAPI:サジェスト結果をJSON形式で取得

Fessでは、以下のサジェストAPIを使えます。
 

【サジェストAPIの使い方】
・機能
 サジェスト結果をJSON形式で取得できる
・書き方
 http://<FessのIPアドレス:ポート>/suggest?query=<キーワード>
・実行例
 curl -l http://localhost:8080/suggest?query=f
・実行例の結果
 サジェストAPIのレスポンス(公式サイト)
・参照
 サジェストAPIのリクエストパラメータのリファレンス(公式サイト)


 

以上のようにFessでは、検索関連のAPIを5つ提供しています。
以降でPythonでFessのAPIを使う方法を解説します。


 

PythonでFessのAPIを実行する方法


「PythonでFessのAPIを実行する方法」に関してご紹介します。
 

【ご紹介事項】
・手順1:Pythonをインストール
・手順2:Pythonのrequestsライブラリをインストール
・手順3:PythonでFessのAPIを実行



以降で、上記の各手順に関して解説します。
 

手順1:Pythonをインストール

以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール

 

手順2:Pythonのrequestsライブラリをインストール

PythonでAPIを簡単に使うことができる「requests」ライブラリをインストールするために、以下のコマンドを順番に実行して下さい。

pip install requests
pip list



コマンド実行後、「requests (バージョン)」が表示された場合、「正常にrequestsライブラリをインストールできた」と判断できます。
 

手順3:PythonでFessのAPIを実行

PythonでFessの各APIを実行するプログラムは、以下となります。

import requests

## 定数
fess_server_ip = "http://localhost" # Fessのホスト名またはIPアドレス
fess_server_port = "8080" # Fessが動作するポート
keyword = "test" # 検索キーワード
suggest_word = "f" # サジェストワード

## 検索APIの実行
url = fess_server_ip + ":" + fess_server_port + "/json/?q=" + keyword
req = requests.get(url)
print(req.text)

## ラベルAPIの実行
url = fess_server_ip + ":" + fess_server_port + "/json/?type=label"
req = requests.get(url)
print(req.text)

## 人気ワードAPIの実行
url = fess_server_ip + ":" + fess_server_port + "/json/?type=popularword"
req = requests.get(url)
print(req.text)

## Ping APIの実行
url = fess_server_ip + ":" + fess_server_port + "/json/?type=ping"
req = requests.get(url)
print(req.text)

## サジェストAPIの実行
url = fess_server_ip + ":" + fess_server_port + "/suggest?query=" + suggest_word
req = requests.get(url)
print(req.text)



上記のプログラムを「python-fess-api.py」というファイル名で保存しましょう。保存後、以下のコマンドを実行することでPythonでFessのAPIを実行できます。

python python-fess-api.py



以上のようにPythonからも簡単にFessのAPIを使うことができます。
 

【まとめ】Fessが提供するAPIの使い方とPythonでの実行方法【検索編】


いかがでしたでしょうか?

Fessは検索関連の5つのAPIを提供しています。また、Pythonを使うことでより簡単にFessのAPIを実行できます。

最後にもう一度内容を確認しましょう。
 

【おさらい】
・Fessは、検索関連の5つのAPIを提供している
・検索API、ラベルAPI、人気ワードAPI、Ping API、サジェストAPIがある
・Pythonのrequestsライブラリで簡単にFessのAPIを実行できる



本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。

>> IT技術やその学び方を発信しているサイト「駆け出し物語」(本ブログ)
 

コメント