0

我正在尝试使用 MongoDb (MongoEngine) 实现倒排索引搜索引擎,其中帖子中的术语被分配权重,然后用作嵌入式文档,如下所示:

class Term(db.EmbeddedDocument):
    t = db.StringField()
    weight = db.FloatField()

class Post(db.Document):
    terms = db.ListField(db.EmbeddedDocumentField(Term))

然后给定一个术语,我可以使用此查询找到包含该术语的帖子:

post_list = Post.objects(terms__t=term)

但是,这会返回一个帖子列表,但是我如何才能找到每个返回的帖子的术语权重,而无需遍历嵌入术语列表来查找术语?有没有办法查询帖子以自动返回任何返回帖子的权重?

如果有人有更好的方法在 MongoDB 中实现搜索引擎,也将不胜感激?

谢谢!

4

1 回答 1

0

MongoDB 支持基本文本索引,请参阅:http ://docs.mongodb.org/manual/core/index-text/这是存储和搜索文档的更好方法,特别是如果您想要匹配的分数。

您必须手动调用该命令,因为它当前未在 MongoEngine 中实现。

于 2013-12-10T09:10:56.463 回答