"비슷한 문서"알고리즘을 구현하기 위해 TinkerPop Gremlin (타이탄 백엔드 포함)을 사용하고 있습니다.gremlin 쉘에서와 동일한 결과를 반환하는 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)
... 아무 것도 반환되지 않습니다.
파이썬 백엔드에서 오는 것으로,이 변수 범위와 관련이 있다고 생각하지만 지금까지 나는 그것을 고치는 방법을 모르겠다. 사전에 어떤 도움
감사
편집 : 나는
고마워요, 스티븐, 작동 :) 나는이 "트릭"을 이미 보았지만 아직 연습을하지 않고 있으므로 잊어 버렸습니다. ( –