2014-08-27 3 views
2

'h'필드에 영어 단어 데이터베이스가 저장되어 있습니다. 나는 방금 텍스트 인덱스에 대해 알아 냈고 정규식으로 검색 속도를 높이기 위해이 필드에 하나를 만들고 싶습니다. 그러나 어떻게 든 구문의 오른쪽을 얻을 수 없습니다. 나는 pymongo 2.7.1과 python 3.4를 사용하고있다.pymongo에서 텍스트 색인 만들기

from pymongo import MongoClient 
from pymongo import ASCENDING 
from pymongo import DESCENDING 
from pymongo import TEXT 
#... 
collection.create_index('h', TEXT) 

그리고 나는 다음과 같은 오류를 받고 있어요 :

in create_index 
raise TypeError("cache_for must be an integer or float.") 
TypeError: cache_for must be an integer or float. 

주는 승강 작동합니다. 또한 기본 언어를 영어로 설정하고 싶습니다.

+1

을 내가 아무 생각하지만 텍스트가 create_index 지원되지 않습니다 것, 그리고 그것의 정수를 neeeds 또는 대신 떠 다니십시오. –

+0

오름차순 및 내림차순은 int이므로 텍스트도 필요할 것으로 예상됩니다. 나는 또한 ensure_index로 시도했지만 여전히 작동하지 않습니다. – thehousedude

+0

TEXT가 정수인지 부동인지 확인해야한다고 생각합니다. –

답변

4

배열로 보내면 효과적입니다.

collection.create_index([('h', TEXT)], default_language='english')

나는 또한 사용했습니다 collection.getIndexes()를 확인하려면

{ 
    "key" : { 
     "h" : "text" 
    }, 
    "ns" : "a.a", 
    "name" : "h_text" 
}