検索API

検索結果の取得

Fess に、 http://<Server Name>/json/?q=検索語 のようなリクエストを送ることで、 Fess の検索結果をJSON形式で受け取ることができます。 検索APIを利用するには、管理画面のシステム > 全般の設定でJSONレスポンスを有効にしておく必要があります。

リクエストパラメータ

http://<Server Name>/json/?q=検索語&num=50&field.label=fess というようにリクエストパラメータを指定することで、より高度な検索を行うことができます。 使用できるリクエストパラメータは以下の通りです。

q 検索語。URLエンコードして渡します。
start 開始する件数位置。0から始まります。
num 表示件数。デフォルトは20件です。100件まで表示できます。
fields.label ラベル値。ラベルを指定する場合に利用します。
callback JSONPを利用する場合のコールバック名。JSONPを利用しない場合は指定する必要はありません。
facet.field ファセットフィールドの指定。 (例) facet.field=label
facet.query ファセットクエリの指定。 (例) facet.query=timestamp:[now/d-1d TO *]
facet.size 取得するファセットの最大件数の指定。facet.field が指定されているとき、有効です。
facet.minDocCount 件数がこの値以上のファセットを取得します。 facet.field が指定されているとき、有効です。
geo.location.point 緯度経度の指定。 (例)``geo.location.point=35.0,139.0``
geo.location.distance 中心点からの距離の指定。 (例) geo.location.distance=10km

表: リクエストパラメータ

レスポンス

以下のようなレスポンスが返ります。

{
    "response": {
        "version": 11.0,
        "status":0,
        "q":"Fess",
        "exec_time":0.02,
        "query_time":14,
        "page_size":20,
        "page_number":1,
        "record_count":58,
        "page_count":3,
        "result": [
            {
            "filetype":"html",
            "created":"2016-02-22T06:05:32.312Z",
            "title":"Fess 11.0 \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8",
            "doc_id":"41e962e7e450453daf377063e2e99282",
            "url":"http:\u002F\u002Ffess.codelibs.org\u002Fja\u002Findex.html",
            "site":"fess.codelibs.org\u002Fja\u002Findex.html",
            "contentDescription":" Toggle navigation <strong>Fess<\u002Fstrong> 11.0 \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8...",
            "host":"fess.codelibs.org",
            "digest":" Toggle navigation Fess 11.0 \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 \u76EE\u6B21...",
            "boost":"1.0",
            "mimetype":"text\u002Fhtml",
            "last_modified":"2016-02-20T09:25:36.000Z",
            "content_length":"16166",
            "urlLink":"http:\u002F\u002Ffess.codelibs.org\u002Fja\u002Findex.html",
            "timestamp":"2016-02-20T09:25:36.000Z"
            },
...
        ]
    }
}

各要素については以下の通りです。

response ルート要素。
version フォーマットバージョン。
status レスポンスのステータス。status値は、0:正常、1:検索エラー、2または3:リクエストパラメータエラー、9:サービス停止中、-1:API種別エラーです。
q 検索語。
exec_time 応答時間。単位は秒。
query_time クエリ処理時間。単位はミリ秒。
page_size 表示件数。
page_number ページ番号。
record_count 検索語に対してヒットした件数。
page_count 検索語に対してヒットした件数のページ数。
facet_field 与えられたファセットフィールドにヒットするドキュメントの情報。 (リクエストパラメータに facet.field が与えられた場合のみ)
facet_query 与えられたファセットクエリにヒットするドキュメントの数。 (リクエストパラメータに facet.query が与えられた場合のみ)
geo_distance クエリとして受け取った与えられた地理情報。(リクエストパラメータに geo.location.point, geo.location.distance が与えられた場合のみ)
result 検索結果の親要素。
filetype ファイルの種別。
created ドキュメントの生成日時。
title ドキュメントのタイトル。
doc_id ドキュメントのID。
url ドキュメントのURL。
site サイト名。
content_description コンテンツの説明。
host ホスト名。
digest ドキュメントのダイジェスト文字列。
boost ドキュメントのブースト値。
mimetype MIMEタイプ。
last_modified 最終更新日時。
content_length ドキュメントのサイズ。
urlLink 検索結果としてのURL。
timestamp ドキュメントの更新日時。

表: レスポンス情報