2014-09-23 21 views
0

是否有辦法過濾pymongo中的文本搜索結果。我有一個光標:在pymongo中過濾textSearch

db.models.find(
      {'$text': {'$search': 'some_word'}}, 
      {'score': {'$meta': 'textScore'}}) 

但這搜索整個集合,我只想對那些對某些字段中的特定值特定文檔進行搜索。

是這樣的:

db.models.find(
       {'$text': {'$search': 'some_word'}}, 
       {'score': {'$meta': 'textScore'}} 
       {'$filter: {'field1': 'some_value'}}) `// this doesn't work` 

我只想文本搜索上有「SOME_VALUE」上FIELD1

回答

0

它不搜索整個集合文件搜索。它使用文本索引。文本索引與索引中的術語$search中的詞幹術語相匹配,以明確指出哪些文檔包含這些術語。它不掃描每個文檔以查看哪個匹配。您可以申請附加條件的文本匹配,像這樣:

> db.models.find({ "$text" : { "$search" : "some_word" }, "field1" : "some_value" }) 
+0

我剛剛發現的文檔解決方案,我不知道我錯過了... – 2014-09-24 08:41:42