Я выполняю простой поиск по тегам, используя 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
Каков наилучший способ достижения того же значения?