AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

$text 쿼리

참고

MongoDB 향상된 전체 텍스트 검색 솔루션인MongoDB Search와 시맨틱 검색 솔루션인MongoDB Vector Search를 제공합니다. 연산자 $search 대신, $searchMeta 또는 단계를 $vectorSearch 사용하는 것이 $text 좋습니다.

$text 쿼리를 실행하려면 컬렉션에 텍스트 인덱스 가 있어야 합니다. MongoDB string 콘텐츠에 대한 $text 쿼리를 지원 위해 텍스트 인덱스를 제공합니다. 텍스트 인덱스에는 값이 string 또는 string 요소의 배열 인 모든 필드 포함될 수 있습니다. 컬렉션 텍스트 인덱스 하나 만 있을 수 있지만 해당 인덱스 여러 필드를 포함할 수 있습니다.

동작, 토큰화 및 속성을 포함한 텍스트 인덱스에 대한 전체 참조는 자체 관리 배포서버 의 텍스트 인덱스 섹션을 참조하세요.

이 예시에서는 텍스트 인덱스를 작성하고 이를 사용하여 텍스트 필드만 지정된 커피숍을 찾는 방법을 보여 줍니다.

다음 문서를 사용하여 컬렉션 stores를 생성합니다.

db.stores.insertMany(
[
{ _id: 1, name: "Java Hut", description: "Coffee and cakes" },
{ _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" },
{ _id: 3, name: "Coffee Shop", description: "Just coffee" },
{ _id: 4, name: "Clothes Clothes Clothes", description: "Discount clothing" },
{ _id: 5, name: "Java Shopping", description: "Indonesian goods" },
{ _id: 6, name: "NYC_Coffee Shop", description: "local NYC coffee" }
]
)

에서 다음을 실행하여 및 mongosh $text 필드에 대한 쿼리를 허용합니다.name description

db.stores.createIndex( { name: "text", description: "text" } )

정확한 여러 단어로 구성된 문자열을 큰따옴표로 묶어 검색 할 수 있습니다. $text 쿼리는 전체 문자열을 포함하는 문서와만 일치합니다.

예시 를 들어, 다음 쿼리 "coffee shop" 문자열을 포함하는 모든 문서를 찾습니다.

db.stores.find( { $text: { $search: "\"coffee shop\"" } } )

이 쿼리 다음 문서를 반환합니다.

[
{ _id: 3, name: 'Coffee Shop', description: 'Just coffee' },
{ _id: 6, name: 'NYC_Coffee Shop', description: 'local NYC coffee' }
]

지정하지 않는 한 정확한 문자열 검색 대소문자를 구분하거나 분음 부호를 구분하지 않습니다. 예시 를 들어 다음 쿼리 이전 쿼리 와 동일한 결과를 반환합니다.

db.stores.find( { $text: { $search: "\"COFFEé SHOP\"" } } )

정확한 문자열 검색 형태소 분석 또는 중지 단어를 처리하다 하지 않습니다.

단어를 제외하려면 '-' 문자를 앞에 붙이면 됩니다. 예를 들어, 'java' 또는 'shop'을 포함하지만 'coffee'는 포함하지 않는 모든 스토어를 찾으려면 다음을 사용합니다.

db.stores.find( { $text: { $search: "java shop -coffee" } } )

MongoDB 는 기본값 정렬되지 않은 순서로 결과를 반환합니다. 그러나 $text 쿼리는 문서 가 쿼리 와 얼마나 잘 일치하는지를 지정하는 각 문서 의 관련성 점수를 계산합니다.

관련성 점수 순서로 결과를 정렬하려면 $meta textScore 필드를 명시적으로 투영하고 이를 기준으로 정렬해야 하며 다음과 같습니다.

db.stores.find(
{ $text: { $search: "java coffee shop" } },
{ score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )

$text 집계 파이프라인 에서도 사용할 수 있습니다.

이 페이지 평가하기

이 페이지의 내용