我在比较mongo集合中潜在的数百万个文档之间的字段。这些字段将提前确定,并将权重分配给每个字段。然后这些权重将用于返回代表“喜欢”文档建议的文档对。例如,如果要比较两个文档,并且两个文档的字段'first_name'具有相同的值,则会参考权重表,并为该对的分数添加该权重。如果两者之间的另一个字段相同,分数将更新以反映较高的相似度。比较MongoDB中的文档
我目前正在通过迭代初始结果集来处理这个问题,然后进行嵌入式迭代,该迭代也会经过结果集并将每个文档与第一个迭代器所在的文档(效率极低)进行比较。这当前全部由php完成,因为它通过光标捕获元素。
我打开任何建议,包括MapReduce实现(似乎并不适用),光标操作,几乎任何你可以想出来简化过程,因为我现在在O(n^2)复杂性工作(好吧,稍微好一点,因为我跳过了第一个迭代器已经覆盖的文档)。
我看着创建一个非常类似的设置,并希望避免创建额外的集合来维护,但这看起来更像是我必须去的路线。感谢您的意见。 – Ghjnut 2012-02-03 03:08:53