Python mongodb全文搜索建议多个单词

Python mongodb全文搜索建议多个单词,python,search,mongodb,full-text-search,Python,Search,Mongodb,Full Text Search,我正在尝试对我的一个mongodb集合(la)进行某种形式的全文搜索。 我为每个文档创建一个_关键字条目,并使用该文档中其他字段中的小写单词填充它。然后我像这样搜索它(前缀搜索),例如searchString='car' found_shots = connection.Shot.find({'_keywords': re.compile('^%s' % searchString.lower())}).limit(limit).skip(skip) 问题是当我尝试搜索多个单词时(例如searc

我正在尝试对我的一个mongodb集合(la)进行某种形式的全文搜索。 我为每个文档创建一个_关键字条目,并使用该文档中其他字段中的小写单词填充它。然后我像这样搜索它(前缀搜索),例如searchString='car'

found_shots = connection.Shot.find({'_keywords': re.compile('^%s' % searchString.lower())}).limit(limit).skip(skip)
问题是当我尝试搜索多个单词时(例如searchstring=['car','online']

regex1 = re.compile('^%s' % searchStrings[0].lower())
regex2 = re.compile('^%s' % searchStrings[1].lower())
found_shots = connection.Shot.find({'$and':[{'_keywords':regex1},{'_keywords':regex2}]}).limit(limit).skip(skip)

那不行。有什么想法吗?

$和
仅在1.9.x版中提供

由于您使用的是1.8.2,因此无法正常工作


如果升级,您将获得最新的命令集,并且可以使用$and命令。

MongoDB 2.6现在可以使用
$text
命令和FTS索引进行全文搜索。

您运行的是哪个版本的mongo,因为$and仅为1.9.x和1.9.xabove@Sammaye当前位置你是对的,我当时在印象我将其更新为2.0进行测试,但我没有。我的不好。我的代码适用于2.0吗?这是一种好方法吗?不好?除了运行两个不同的查询并在python中对它们进行ANDing之外,还有其他方法吗?应该这样做,regex对象可能不会,但只要用标准//字符串替换它,如果没有更好的方法,则取决于是否有更好的方法s取决于您正在执行的搜索查询的确切类型。如果您有意使用$and来连接这两个语句,那么是最好的,但其他更好的方法可能是$or。我在数据网格中从我的extjs前端进行实时搜索。基本上,它适用于我在搜索框中输入的第一个单词(它会查找所有在_关键字字段中有以搜索词开头的单词的行),然后我需要and(查找所有在_关键字字段中有以word1和word2开头的单词的行)