我正在开发一个推荐其他用户的推荐系统。第一个结果应该是与“搜索者”用户最“相似”的用户。用户对问题的回答和以相同方式回答的问题的数量就是相似度。
问题是我不知道如何编写查询
因此,用技术术语来说,我需要按具有特定属性值的边数对用户进行排序,我尝试使用此查询,我认为它应该可以工作,但它不起作用:
let query = g.V().hasLabel('user');
let search = __;
for (const question of searcher.questions) {
search = search.outE('response')
.has('questionId', question.questionId)
.has('answerId', question.answerId)
.aggregate('x')
.cap('x')
}
query = query.order().by(search.unfold().count(), order.asc);
抛出这个 gremlin 内部错误:
org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet 不能转换为 org.apache.tinkerpop.gremlin.structure.Vertex
我也为每个问题尝试了多个.by()
,但结果不是按巧合程度排序的。
我该如何编写这个查询?