자체 관리 배포에서 스캔되는 텍스트 인덱스 항목 수 제한
이 튜토리얼에서는 인덱스를 만들어 $text
표현식 및 동등 조건을 포함하는 쿼리에 대해 스캔되는 인덱스 항목 수를 제한하는 방법을 설명합니다.
inventory
컬렉션에 포함된 문서는 다음과 같습니다.
{ _id: 1, dept: "tech", description: "lime green computer" } { _id: 2, dept: "tech", description: "wireless red mouse" } { _id: 3, dept: "kitchen", description: "green placemat" } { _id: 4, dept: "kitchen", description: "red peeler" } { _id: 5, dept: "food", description: "green apple" } { _id: 6, dept: "food", description: "red potato" }
다음과 같이 개별 부서별로 텍스트 검색을 수행하는 일반적인 사용 사례를 가정해 보겠습니다.
db.inventory.find( { dept: "kitchen", $text: { $search: "green" } } )
특정 dept
내의 문서만 검색하도록 텍스트 검색을 제한하려면 먼저 dept
필드에 오름차순/내림차순 인덱스 키를 지정한 다음 description
필드에 text
인덱스 키를 지정하는 복합 인덱스를 만듭니다. :
db.inventory.createIndex( { dept: 1, description: "text" } )
그런 다음 특정 부서 내 텍스트 검색은 인덱스된 문서의 스캔을 제한합니다. 예를 들어, 다음 쿼리는 dept
가 kitchen
인 문서만 스캔합니다.
db.inventory.find( { dept: "kitchen", $text: { $search: "green" } } )