/ /「名前が入っています」などのクエリフィルタをオブジェクト化する - java、google-app-engine、objectify

"name contains"のようなクエリフィルターを客観化する - java、google-app-engine、objectify

Google App EngineでObjectifyを使用してデータストアをクエリすると、次のようなクエリを使用したいと思います。

objectifyService.query(Entity.class).filter("name contains", a);

それらの名前に "a"カーナントを含むすべてのエンティティを含むリストを返します。しかし、contains演算子は存在しません。

それを行う簡単な方法はありますか?

回答:

回答№1は2

単純化されたネームフィールドを検索したい部分に分割し、それらをインデックス付きのプロパティとして保存することで、フルテキスト検索サービスを提供します。 Luceneのアナライザを使って、フィールドをトークン化して枝打ちすることさえできます。

これは、データストアを操作するときに多く発生します。必要な操作を実行するクエリ演算子がない場合は、クエリが同等のテストになるように関連するデータを事前に索引付けします。

または、FTSサービスを使用します。


回答№2の場合は0

回答は「演算子は存在しません」 - Googleデータストアはこのタイプのフィルタをサポートしていません。検索するには、検索エンジンを使用する必要があります: https://cloud.google.com/appengine/docs/java/search/