在Mongodb中订购搜索结果?

时间:2011-05-04 22:25:46

标签: search full-text-search mongodb

使用mongodb进行简单的标记搜索,数据存储在列表中。

Entity A {_id:...,tags : ['a','b','f']}
Entity B {_id:...,tags : ['g','a','v']}
Entity C {_id:...,tags : ['a','c','e']}
Entity D {_id:...,tags : ['c','s','e']}
Entity E {_id:...,tags : ['a','c','s']}

搜索字符串:'a c s g'

查询

db.collecction.find({tags:{$in:['a','c','s','g']}})

预期响应将是实体,其中最匹配的标记位于顶部,之后休息。

的回复:

1.Entity E - 3 tags matched
2.Entity D/C/B - 2 tags matched
3.Entity C/B/D - 2 tags matched
4.Entity B/D/C - 2 tags matched
5.Entity A - 1 tag matched

实现同样目标的最佳途径是什么?

1 个答案:

答案 0 :(得分:4)

您必须在应用程序级别实施排名/排序。 MongoDB中没有任何东西可以帮助你。

您可以查看

http://www.mongodb.org/display/DOCS/Aggregation

但我不知道如何将它用于您的特定用例。