2017-08-18 25 views
2

ハッシュタグとつぶやきが格納されたNeo4jデータベースがあります。 すべてのツイートにはtopicというプロパティがあり、それが属するトピックを定義します。 私は次のクエリを実行すると、私はデシベルで最も人気のハッシュタグ、どんなに話題を取得:Neo4jのノードの関係数のカウント

MATCH (h:Hashtag) 
RETURN h.text AS hashtag, size((h)<--()) AS degree ORDER BY degree DESC 

私は、単一のトピックのための最も人気のあるタグを取得したいのですが。次のいずれかが、私は何をすべき

MATCH (h:Hashtag), (t:Tweet) 
WHERE t.topic='test' 
RETURN h.text AS hashtag, size((h)<--(t)) AS degree ORDER BY degree DESC 

を実行するために、永遠に取りながら

​​

この

MATCH (h:Hashtag) 
RETURN h.text AS hashtag, size((h)<--(t:Tweet{topic:'test'})) AS degree ORDER BY degree DESC 

: は、私はこれを試してみましたか?ありがとう。

答えて

2

Cypherでは、集計関数の結果を返すと、集計関数とともに返されるものを暗黙的に「グループ化」します。 (あなたが/凝集によるグループなしで各行のためのパターンのサイズを取得しますので)SIZE()は集合ではありませんが、COUNT()は次のとおりです。

MATCH (t:Tweet {topic:'test'})-->(h:Hashtag) 
RETURN h, COUNT(*) AS num ORDER BY num DESC LIMIT 10 

このクエリは、Hashtagでグループ化されたTweetノードの数です。

+0

ありがとう、ウィリアム、私はできるだけ早く試してみます。ちなみに、これは最適な解決策ですか、パフォーマンスについて話すか、それはパフォーマンスの低下につながりますか? – sirdan

関連する問題