0

*这里是 Mongo 新手(在 Windows 上使用 Mongo C# 驱动程序)

嗨,我正在评估 Mongo 是否应用了数字维度的组合。我有数百个数字字段并创建一个布尔查询(我广泛使用 Lucene、Solr 等,因此请原谅这些术语)。Solr 中的结果按相关性排序,即沿多个维度最接近的匹配,然后是下一个最接近的匹配,依此类推......

例如:

Doc1: 
 - NumField 1 : 9.9
 - NumField 2: 8.2

Doc2:
 - NumField 1 : 5.9
 - NumField 2: 8.9


**Query**
 - NumField 1: Between 7 & 10
 - NumField 2: Between 8 & 10

I would want Doc1 to show up before Doc2.

使用类似的构造查询 Mongo 得到的结果似乎没有相关性排序。有什么方法可以按“相关性”对查询结果进行排序?

ps 我知道总是可以从我的客户端中的游标中订购结果,但如果可能的话,我想在服务器端进行。

4

1 回答 1

1

Mongo 没有任何基于分数的排序,它按照文档的索引顺序返回文档(假设您的查询命中索引)。

您最好的选择可能是在客户端上进行排序。如果您真的非常想在 Mongo 中执行此操作,您可以使用 map/reduce 功能在文档上打分,然后查询输出集合并按分数排序。不过,这可能不是一个好主意。

于 2012-07-27T23:01:38.950 回答