検索結果の取得
Fess に、 http://<Server Name>/api/v1/documents?q=検索語` のようなリクエストを送ることで、 Fess の検索結果をJSON形式で受け取ることができます。 検索APIを利用するには、管理画面のシステム > 全般の設定でJSONレスポンスを有効にしておく必要があります。
リクエストパラメーター
http://<Server Name>/api/v1/documents?q=検索語&num=50&fields.label=fess というようにリクエストパラメーターを指定することで、より高度な検索を行うことができます。 使用できるリクエストパラメーターは以下の通りです。
| q | 検索語。URLエンコードして渡します。 | 
| start | 開始する件数位置。0から始まります。 | 
| num | 表示件数。デフォルトは20件です。100件まで表示できます。 | 
| sort | ソート。検索結果をソートする場合に利用します。 | 
| fields.label | ラベル値。ラベルを指定する場合に利用します。 | 
| 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 | 
| lang | 検索言語の指定。 (例) lang=en | 
| preference | 検索時のシャードを指定する文字列。 (例) preference=abc | 
| callback | JSONPを利用する場合のコールバック名。JSONPを利用しない場合は指定する必要はありません。 | 
表: リクエストパラメーター
レスポンス
以下のようなレスポンスが返ります。
 (整形後のものです)
 {
  "q": "Fess",
  "query_id": "bd60f9579a494dfd8c03db7c8aa905b0",
  "exec_time": 0.21,
  "query_time": 0,
  "page_size": 20,
  "page_number": 1,
  "record_count": 31625,
  "page_count": 1,
  "highlight_params": "&hq=n2sm&hq=Fess",
  "next_page": true,
  "prev_page": false,
  "start_record_number": 1,
  "end_record_number": 20,
  "page_numbers": [
    "1",
    "2",
    "3",
    "4",
    "5"
  ],
  "partial": false,
  "search_query": "(Fess OR n2sm)",
  "requested_time": 1507822131845,
  "related_query": [
    "aaa"
  ],
  "related_contents": [],
  "data": [
    {
      "filetype": "html",
      "title": "Open Source Enterprise Search Server: Fess — Fess 11.0 documentation",
      "content_title": "Open Source Enterprise Search Server: Fess — Fe...",
      "digest": "Docs » Open Source Enterprise Search Server: Fess Commercial Support Open Source Enterprise Search Server: Fess What is Fess ? Fess is very powerful and easily deployable Enterprise Search Server. ...",
      "host": "fess.codelibs.org",
      "last_modified": "2017-10-09T22:28:56.000Z",
      "content_length": "29624",
      "timestamp": "2017-10-09T22:28:56.000Z",
      "url_link": "https://fess.codelibs.org/",
      "created": "2017-10-10T15.20:48.609Z",
      "site_path": "fess.codelibs.org/",
      "doc_id": "e79fbfdfb09d4bffb58ec230c68f6f7e",
      "url": "https://fess.codelibs.org/",
      "content_description": "Enterprise Search Server: <strong>Fess</strong> Commercial Support Open...Search Server: <strong>Fess</strong> What is <strong>Fess</strong> ? <strong>Fess</strong> is very powerful...You can install and run <strong>Fess</strong> quickly on any platforms...Java runtime environment. <strong>Fess</strong> is provided under Apache...Apache license. Demo <strong>Fess</strong> is OpenSearch-based search",
      "site": "fess.codelibs.org/",
      "boost": "10.0",
      "mimetype": "text/html"
    }
  ]
}
各要素については以下の通りです。
全てのドキュメントを検索
対象のすべてのドキュメントを検索を検索する場合は以下のリクエストを送信します。 http://<Server Name>/api/v1/documents/all?q=検索語`
この機能を利用するためには、fess_config.propertiesでapi.search.scrollをtrueに設定する必要があります。
リクエストパラメーター
使用できるリクエストパラメーターは以下の通りです。
| q | 検索語。URLエンコードして渡します。 | 
| num | 表示件数。デフォルトは20件です。100件まで表示できます。 | 
| sort | ソート。検索結果をソートする場合に利用します。 | 
表: リクエストパラメーター