libro
www.tuyano.com
Google App Engine for Java(GAE/J)プログラミング入門

Search Serviceによる全文検索 (1/7)

作成:2012-06-02 15:01
更新:2012-06-02 15:01

■Search Serviceによる全文検索について(前書き?)

新たにGAEに追加された「Search Service」は、GAEに全文検索を導入するAPIです。これにより、今まで完全一致の値しか検索できなかったGAEでも、検索テキストを含むデータを見つけることができるようになります。

非常にパワフルな機能なのですが、実際に利用を開始する前に、いくつか知っておいてほしいことがありますので、それらから説明しておきます。

※この全文検索機能は、現時点では「Experimental(試験運用)」という扱いです。このまま果たして正式公開されるか?という点については全くの未知数です。あくまで「実験的に公開された新しい機能である」という点を理解してください。このままこのSearch Serviceを実装して、「正式公開したら互換性がなくなり全部書き直し」なんてことになっても知りません。責任はすべて自分で持ってください。

また、このSearch Serviceを利用する場合、一つ理解してほしいことがあります。それは、「Searchは、今まで保存してあるデータストアのデータに全文検索の機能を追加するものではない」という点です。

後述しますが、Searchによる全文検索は、実は従来のデータストアで使われているデータとは異なるデータ形式になっています。今まで、データストアに保存されているオブジェクトは、そのままでは全文検索できないのです。

Searchでは、新たに「Document」と呼ばれるクラスが用意されました。保存するデータは、このDocumentインスタンスとして用意する必要があります。この他にも、全文検索を利用できる条件というがいくつかあります。以下に整理しておきましょう。


◎Searchによる全文検索の利用条件

GAE SDK 1.6.6以降が必要です。それ以前のバージョンでは動きません。

・アプリケーションは、「High Replication」で作成されている必要があります。未対応のアプリケーションでは動きません。これは、新しくプロジェクトを作成する際に選択することができます(既存のアプリケーションを設定変更することはできません)。

・既に述べたように、データは「Document」クラスのインスタンスとして保存されている必要があります。それ以外のインスタンスでは使えません。また現状ではオブジェクトの変換なども用意されていませんので、一からデータを構築していくしかないようです。

・Webアプリケーションは、スレッドセーフでなければいけません。これは、appengine-web.xmlの設定で可能です。このファイルを開き、<appengine-web-app>タグ内に、必ず以下のタグを追加してください。
<threadsafe>true</threadsafe>
これはWebアプリケーションがスレッドセーフであることを示す設定です。これを用意しておかないとうまく動きません。


――では、これらの条件が整ったところで、次から具体的な使い方を覚えていくことにしましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「Google App Engine for Java(GAE/J)プログラミング入門」に戻る