Упорядоченные результаты поиска в Mongodb? - PullRequest
2 голосов
/ 05 мая 2011

Я выполняю простой поиск по тегам, используя 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']}

Строка поиска: 'acs 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 Ответ

4 голосов
/ 05 мая 2011

Вы должны реализовать ранжирование / сортировку на уровне приложения.В MongoDB нет ничего, что могло бы вам здесь помочь.

Вы можете посмотреть

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

, но я не понимаю, как это можно использовать для вашего конкретного случая.UseCase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...