分组并获取每个前缀的前K个

时间:2013-12-02 22:51:14

标签: java mongodb

我有一个包含该格式文档的mongoDB集合:

{ "_id":..., "word": 1, "Value": 235 }
{ "_id":..., "word": 2, "Value": 862 }
{ "_id":..., "word": 1, "Value": 16210 }

我希望从具有相同前缀的单词中获取具有最大值的k文档。数据库是巨大的(超过1M文档),它必须能够快速工作。 所以每次都不可能对它进行排序(我试过它,需要花费很多时间)。

我该怎么办? (我使用java)

1 个答案:

答案 0 :(得分:0)

使用合并排序将它们分组到具有相似特征的不同组中,因此更容易分类和查找

我在CSCI142类中了解了合并排序=)

你也可以创建一个二元树,它具有所有不同的选项作为叶子,并以这种方式对它们进行排序。不确定这会有多高效