Search Serviceによる全文検索 (1/7)
作成:2012-06-02 15:01
更新: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>タグ内に、必ず以下のタグを追加してください。
――では、これらの条件が整ったところで、次から具体的な使い方を覚えていくことにしましょう。
非常にパワフルな機能なのですが、実際に利用を開始する前に、いくつか知っておいてほしいことがありますので、それらから説明しておきます。
※この全文検索機能は、現時点では「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アプリケーションがスレッドセーフであることを示す設定です。これを用意しておかないとうまく動きません。
――では、これらの条件が整ったところで、次から具体的な使い方を覚えていくことにしましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ
「Google App Engine for Java(GAE/J)プログラミング入門」に戻る