2012-07-18 5 views
4

약 400,000 개의 항목이있는 Mongo 데이터베이스가 있으며 각 항목은 상대적으로 짧은 (< 20 자) 제목이 있습니다. 이 제목에 대해 빠른 하위 문자열 검색을 수행 할 수 있기를 원합니다 (자동 완성 막대와 같은 항목에서 결과를 사용할 수있을만큼 빠름). 또한 접두어 만 검색합니다 (제목은 부분 문자열으로 시작합니다). 우리는 무엇을 할 수 있습니까?Mongo에서의 Fast substring 검색

답변

5

접두어 검색 만 수행하는 경우 해당 필드의 색인으로 충분해야합니다. 루트 정규 표현식 쿼리는 인덱스를 사용하므로 빠릅니다.

2

Sergio는 정확하지만보다 구체적으로 i (대소 문자 구분) 플래그가없는 왼쪽 및 밑줄 접두사에 대한 색인을 사용하면 색인을 효율적으로 사용할 수 있습니다. 이것은 사실의 문서에 기록됩니다 :

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions

당신이 쿼리 너무 벤치마킹하려는 경우 .explain()를 사용하는 것을 잊지 마십시오.

+0

좋아, 우리는 대소 문자를 구분하지 않는 플래그를 사용하고있었습니다. 그것을 취하는 것은 조금 도움이되는 것처럼 보였다. – generaltsow