現在、Googleクラウドのデータストア、エンドポイント、およびNDBモデルを学習しています。私は今まで自分自身のために(初心者プログラマーの完全な)うまくいっていて、問題に遭遇しました。私は、検索に使用したいキーワードを含む文字列のプロパティを持っています。例。トースト、ベーグル、白、暗い。Googleのクラウドデータストアアイテムを含むリストを取得する
マイクエリーは現在、正確な文字列の一致を取得しますが、一部の文字列の一致も同様に行う必要があります。以下のコードは動作しますが、IN文はまだ完全一致を探しているようです。とにかく、データストアに、各単語を個別に読み取るプロパティの区切り文字を教えてください。または私は4つの異なるプロパティフィールドにそれを分割する必要がありますか?
if len(search) == 4:
for task in DirectionModel.query(DirectionModel.keywords == request.keywords, namespace='cookingDirections'):
tasks.append(Direction(name=task.name, direction=task.direction, description=task.description,
keywords=task.keywords))
else:
for task in DirectionModel.query(DirectionModel.keywords.IN([search]), namespace='cookingDirections'):
tasks.append(Direction(name=task.name, direction=task.direction, description=task.description,
keywords=task.keywords))
return DirectionList(items=tasks)
モデル:
class DirectionModel(ndb.Model):
name = ndb.StringProperty()
direction = ndb.StringProperty(indexed=False)
description = ndb.StringProperty()
keywords = ndb.StringProperty()
を調査したほうが良いかもしれません。 – Jerec
キーワードを格納するには、Arrayプロパティ(文字列の配列)を使用する必要があります。次に、いずれかのキーワードまたはキーワードの組み合わせを検索できます。 –