【悩み】
・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の学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。
コメント