2013-11-17 3 views
0

Я пытаюсь внедрить поисковую систему перевернутого индекса с MongoDB (MongoEngine), где члены в сообщениях присваиваются веса, а затем используются в качестве встроенных документов, как, например: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?

Спасибо!

ответ

0

MongoDB поддерживает базовый индекс текста: http://docs.mongodb.org/manual/core/index-text/ Это лучший способ хранения и поиска документов, особенно если вы хотите получить оценку для матча.

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

Смежные вопросы