以下に示すように、IBM Graph (Cassandra に支えられた TitanDB) でモデル化された非常に基本的なニュース フィードがあります。
次のことを行うクエリを作成しようとしています。
- 頂点から開始
USER: John.Smith
- ユーザーからの最新の 15 の投稿
FRIENDS
を自分の投稿と組み合わせて取得します。 USER: John.Smith
それらの投稿のいずれかが好きかどうかを確認しis_liked
、各投稿の単純なブール プロパティとして返します。
このクエリには、いくつかの前提条件があります。
- 返される各投稿では、投稿のプロパティ
USER
も返される必要があります。この質問のために、avatar
プロパティのみが必要です。 - これらの結果をページ付けできるようにする必要があります。つまり、上位 15 件の投稿を取得したら、次の 15 件、次の投稿などを返すことができる必要があります。
ユーザーの友達を取得するのに問題はありませんLATEST_POSTS
。
g.V().hasLabel("USER").has("userid", "John.Smith").both("FRIEND").out("LATEST_POST");
私はTinkerpopのドキュメントを読みましたが、私の要件を満たすためにこのクエリに基づいて構築を開始する方法についてまだ迷っています。
また、パフォーマンス、データ モデリング、スキーマ、またはインデックス作成のアドバイスに関するこのアプローチに関するコメントは、非常に役立ちます。つまり、このアプローチでフィードをリアルタイムで大規模に取得できると期待する必要がありますか?
前もって感謝します。