2017-03-23 9 views

答えて

0

値のコレクションで値がどんなプロパティのコンテキストを失うかのように、あなたにとってどれほど有用かわかりません。あなたがそれをソートすると、あなたがこれを行うすべてのノードが同じプロパティを持っているなら、Neo4jにはプロパティを制限するテーブルスキーマがないので、これを行うことをお勧めしません。

この例では、あなたがこれを行う方法を示します。

match (n:Person) 
with n 
with n, keys(n) as keys 
return [key in keys | n[key]] as values 

EDIT

あなたはおそらくすでにあなたはサイファーにコサイン類似度を適用しようとしている方法を知っているが、ない場合は、このgraphgistは、一般的にカバーアプローチですが、ノードのプロパティではなく、関係に基づいています。

あなたの場合は、注文が一貫していることを確認する必要がありますので、最初にキーを並べ替えるか、WITH ... ORDER BYをやり直すか、または「apoc.coll .sort() 'はAPOC Proceduresを使用しています。

+0

実際に私はコサインの類似性を適用して(同じカテゴリの)商品間の類似度を求めたいので、すべてのプロパティ値をベクトルにする必要があります。値はバイナリであり、すべてのノードが同じプロパティを持ちます。私は知っている、私は私の人生をより簡単にするためにRDBMSの概念を使用していますが、私は、完全にコサイン類似メソッドを使用してコンテンツベースのフィルタリングアルゴリズムを実装するためだけにグラフの概念を使用するより良い選択肢を見つけるように思われる。あなたが私に正しい方法でそれを導くことができれば、私は借金になるでしょう。 –

+0

はい私はコサインの類似性を使用してコラボレーティブなフィルタリングを実装し、関係に作用するグラフジストを見ました。私のケースは若干異なります。私はサイファーに新しいので、私はこの時点で苦労しています。今のところ、もし私が注文することをしてベクトルのすべての値を集めるならば、どのようにして、すべてのノードのプロパティが別々のベクトルに別々に格納されることをまだ確認できますか?その後、どのようにして1つのベクトルの連続する値に2番目のベクトルの対応する値を掛け合わせてループすることができますか? –

関連する問題