2012-03-20 8 views
0

私はオブジェクトfirstName、lastNameなどを持つPersonを持っています 利用可能な人のリストを見つけた後。 firstNameに部分文字列 "ho"が含まれている人物を探す必要があります。これどうやってするの?オブジェクトのリストを取得する方法各オブジェクトに部分文字 "ho"のフィールドが含まれています

私はワイルドカードでLIKEを使用しましたが、アプリケーションはGoogleアプリケーションエンジンでホストされているため、SQLクエリでLIKEを使用できません。それ以前に試してみました。リスト内の各オブジェクトをトラバースせずにどのようにこれを行うことができますか?

+0

の可能重複[Google App Engineの:GQL LIKEのクエリを実行することが可能ですか?](http://stackoverflow.com/questions/47786/google-app-engine-is-it-可能な-g-do-a-gql-like-query) – Amber

答えて

0

少なくとも、BigTableベースのデータストアを使用している場合はできません。

1

実際には、リレーショナルデータベースとは異なる方法でデータストアを考える必要があります。基本的には、データを格納する方法について賢明でなければならないということです。全文検索を行うことなく、検索可能な単語のキーリストを作成し、エンティティグループ内の子エンティティに格納することで、全文検索を模倣する戦略を使用できます。次に、クエリ文字列に一致する親オブジェクトのキーを返すようにクエリを構築できます。これにより、全文検索のオーバーヘッドなしに索引付けを行うことができます。

ここでは、Objectifyを使用した例がありますが、同じこと(JPA、JDO、低レベルAPI)を達成するために何かを使用できます。

http://novyden.blogspot.com/2011/02/efficient-keyword-search-with-relation.html

関連する問題