문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

스캔하는 항목 수 제한

이 튜토리얼에서는 인덱스를 만들어 $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"
}
)

그런 다음 특정 부서 내 텍스트 검색은 인덱스된 문서의 스캔을 제한합니다. 예를 들어, 다음 쿼리는 deptkitchen 인 문서만 스캔합니다.

db.inventory.find( { dept: "kitchen", $text: { $search: "green" } } )

참고

  • 복합 text 인덱스에는 다중 키 또는 지리 공간적 인덱스 필드와 같은 다른 특수 인덱스 유형이 포함될 수 없습니다.

  • 복합 텍스트 인덱스에 텍스트 인덱스 키 앞에 오는 키가 포함되어 있는 경우 $text 를 사용하려면 쿼리 조건자에 앞의 키에 대한 동등성 매치 조건 이 포함되어야 합니다.

  • 복합 text 인덱스를 만들 때 모든 text 인덱스 키는 인덱스 사양 문서에 인접해 나열되어야 합니다.

다음도 참조하세요.

← 가중치로 검색 결과 제어