MongoDb:查找包含与给定字符串匹配的标签/关键字的文档



>我有一个集合(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"应按以下顺序返回文档:

  1. Foo4 (3 匹配项 - "示例关键字"、"示例"、"搜索"(
  2. Foo1 (2 匹配项 - "示例"、"关键字"(
  3. Foo3 (1 匹配 - "搜索"(

我正在使用Symfony3和DoctrineODM,如果它有所作为的话。谢谢大家的帮助!

MongoDB支持每个文档的匹配计数,您甚至可以创建一个文本索引,该索引使用自定义权重观察多个字段。(丢弃为其他数据库构建的任何自动关键字检测甚至很有用。

最新更新