はじめに
前回のロールベース検索編では、ユーザーに閲覧権限が必要な環境においてどのようにFessを利用できるかをご紹介しました。今回はFessが提供するREST APIを利用して、クライアントサイド(ブラウザ側)で検索とその結果の表示を行う方法をご紹介します。REST APIを利用することで、既存のウェブシステムにもFessを検索サーバーとして利用して、HTMLだけの変更で組み込むことも可能になります。
本記事ではFess 4.0.0を利用して説明します。Fessの構築方法については導入編を参照してください。
対象読者
- 既存のウェブシステムに検索機能を加えたい方
- Ajaxを利用した検索システムを構築したい方
必要な環境
この記事の内容に関しては次の環境で、動作確認を行っています。
- IE 6/7/8
- Firefox 3.6
REST API
Fessは通常のHTMLによる検索表現以外に、REST APIとしてXMLおよびJSON(JSONPも含む)による検索結果の応答が可能です。REST APIを利用することで、Fessサーバーを構築しておき、既存のシステムから検索結果だけを問い合わせにいくことも簡単に実現できます。検索結果をXMLやJSONなどの開発言語に依存しない形式で扱えるので、FessをJava以外のシステムにも統合しやすいと思います。XMLやJSONはJavaScriptのライブラリでもサポートされているので、Ajaxとして利用する場合でも簡単に扱うことができます。
Fessの提供しているREST APIがどのような応答を返してくるのかについては以下を参照してください。
Fessは内部の検索エンジンとしてApache Solrを利用しています。SolrもXMLやJSONによるAPIを提供していますがFessのAPIは異なるものです。SolrのAPIでなく、FessのAPIを利用するメリットは、FessのAPIを利用することで検索ログの管理や閲覧権限の制御など、さまざまなFess固有の機能を利用できることが挙げられます。ドキュメントクロールの仕組みから独自に開発したい場合はSolrを利用するのが良いと思いますが、簡単に検索機能を追加したいということであればFessを利用して多くの開発コストを削減できます。