2017-11-13 5 views
1

私はプロジェクトのためにneo4jを評価しています。全体的には私のニーズにかなりよく合っているようですが、私にはわからない要件が1つあります。関係の崩壊

時間の経過とともに減衰する2つのノード間の関係を作成できる必要があります。

neo4jはこのようなことをサポートしていますか?あるいは誰でもこれを行うための狡猾な方法を知っていますか?

おかげ

+0

私はのNeo4jは、このようなものをサポートしていないと思います。基本的に、関係にTTL値(2日間など)を割り当てたいとしますか? –

+1

正確ではありません。それは漸進的に減衰する必要があります。タイムスタンプとの関係を作成し、これらの行に沿った関数のようなものを作成することによっても行うことができます:score = 1 /(now() - stored_timestamp)。時間の経過とともに "力"を失う関係を考えてみましょう。結果の関係の強さでソートされた接続ノードを後で返したいと思います。 –

答えて

1

は、あなただけの彼らの保存されたタイムスタンプの降順での関係を並べ替えることができ、最初の「新鮮」な関係を取得します。例えば

MATCH (f:Foo {id: 123})-[b:BAR]->() 
RETURN b 
ORDER BY b.stored_timestamp DESC; 
+0

私は、 'RETURN f ORDER BY 1/timestamp() - b.stored_timestamp DESC'の行に沿ってもっと何かが必要です。 –

+0

あなたは実際に '1 /(timestamp() - b.stored_timestamp)'を意味すると思いますか?その値は古い 'stored_timestamp'値の方が小さくなりますので、' ORDER BY ... DESC'節はより新しい 'stored_timestamp'値を最初に並べます。 'ORDER BY b.stored_timestamp DESC'を使うだけで同じ効果が得られます。 – cybersam