現在、TinkerPop Gremlin (Titan バックエンドを使用) を使用して、「類似ドキュメント」アルゴリズムを実装しています。
次の行は、gremlin シェルで完全に機能しています。
v = g.v(880068)
m=[:]
v.as('x').out('auto_tag').in('auto_tag').has('status', 1).except('x').groupCount(m).filter{false}
results=[]
m.sort{-it.value}[0..9].each(){key, value -> results.add(key.document_id) }
results
次の結果が表示されます。
==>3188749
==>3190640
==>3191407
==>3187753
==>3186634
==>3185534
==>3189883
==>3190108
==>3187088
==>3188890
しかし、関数で同じコードを「ラップ」しようとすると、もう機能しません:
v = g.v(880068)
def get_similar_documents(v) {
m=[:]
v.as('x').out('auto_tag').in('auto_tag').has('status', 1).except('x').groupCount(m).filter{false}
results=[]
m.sort{-it.value}[0..9].each(){key, value -> results.add(key.document_id) }
return results
}
get_similar_documents(v)
...何も返されません
Python バックエンドから来たので、これは変数のスコープに関連していると思いますが、今のところ修正方法がわかりません。
助けてくれてありがとう
編集:私は電球を使用しています。そのため、コードを関数でラップしたいと思います(後でPythonから呼び出すことができます)