我有一个集合(Foo),它有“关键字”字段。我想找到与给定字符串匹配的文档(至少有一个匹配的关键字),并按匹配数对它们进行排序。
Foo:
{name: 'Foo1', keywords: ['example', 'sample', 'keywords']},
{name: 'Foo2', keywords: ['keywords example', 'find']},
{name: 'Foo3', keywords: ['search']},
{name: 'Foo4', keywords: ['example keywords', 'find', 'example', 'search']}
因此,字符串"This is example keywords search"
应按此顺序返回文档:
如果它有所作为,我正在使用Symfony3和DoctrineODM。谢谢大家的帮助!
答案 0 :(得分:1)
MongoDB支持每个文档的匹配计数,甚至可以create a text index which observes multiple fields with custom weights。 (放弃为其他数据库构建的任何自动关键字检测甚至是有用的。)