0

GAE のデータストアで特定のエンティティ タイプのキーワード/タグ検索を実装しようとしています。

class Docs(db.Model):
    title = db.StringProperty()
    user = db.StringProperty()
    tags = db.StringListProperty()

また、非常に基本的な検索関数 (データストアの値ではなく、偽のタグのリストを使用) も作成しました。この関数は、クエリ文字列を取得し、それをタグの各セットに一致させます。タグに一致するクエリ ワードの数に基づいてドキュメントをランク付けします。実際のデータストアを使用することを除いて、これでほとんどすべての作業が必要になります。

ただし、実際のデータストア値を取得する方法がわかりません。検索機能を機能させるには、データストア内のすべてのエンティティのリストが必要ですが、これは不可能です (?)。

また、私が書いた関数を使用せずにデータストアを検索する方法として、GAE の実験的な全文検索と Relation Index Entities を調べてみました。どちらも成功しませんでした。

タグに基づいてエンティティを検索する方法に関する他のアイデアはありますか?

4

1 に答える 1

1

タグ「findme」を持つすべてのドキュメントを検索する必要がある場合、これは非常に単純なクエリです。

num_results = 10
query = Docs.all().filter("tags in", "findme")
results = query.fetch(num_results) # get list of results

それは十分に文書化されています: https://developers.google.com/appengine/docs/python/datastore/queries

于 2012-09-01T04:06:17.947 に答える