Docs Menu
Docs Home
/ / /
몽고이드
/

텍스트 검색

이 페이지의 내용

  • 텍스트 검색 인덱스 정의
  • 텍스트 인덱스 만들기
  • 텍스트 인덱스를 사용하여 쿼리하기

MongoDB 는 string 콘텐츠에 대한 텍스트 Atlas Search 쿼리를 지원하기 위해 텍스트 인덱스 를 제공합니다. 텍스트 인덱스에는 값이 string 또는 string 요소의 배열인 모든 필드가 포함될 수 있습니다.

참고

MongoDB Atlas 는 더욱 강력하고 유연한 텍스트 Atlas Search 솔루션인 Atlas Search Search도 제공합니다. 이 섹션의 나머지 부분에서는 Atlas Search가 아닌 텍스트 인덱스에 대해 설명합니다.

Mongoid로 텍스트 검색을 수행하려면 다음 단계를 따르세요.

  1. 모델에서 텍스트 인덱스를 정의합니다.

  2. 서버에 텍스트 인덱스를 생성합니다.

  3. 텍스트 검색 쿼리 를 작성합니다.

Mongoid를 통한 인덱스 정의는 인덱스 페이지에 자세히 설명되어 있습니다. 텍스트 검색 인덱스는 MongoDB 매뉴얼의 텍스트 인덱스 아래에 자세히 설명되어 있습니다. 다음은 설명 필드 를 활용하는 텍스트 인덱스 가 있는 밴드 모델의 정의 예시 입니다.

class Band
include Mongoid::Document
field :name, type: String
field :description, type: String
index description: 'text'
end

인덱스 유형(text)은 기호가 아닌 string 로 지정해야 합니다.

인덱스를 만들려면 db:mongoid:create_indexes Rake 작업을 호출합니다.

bundle exec rake db:mongoid:create_indexes

설명에 '온스' 또는 그 변형이 포함된 밴드를 찾으려면 $text 연산자 를 사용합니다.

Band.where('$text' => {'$search' => 'ounces'}).to_a
# => [#<Band _id: 5d5341b3ce4ef35d5016746d, name: "foo", description: "ounce">]

검색 쿼리 가 '온스'인 경우에도 설명에 '온스'라는 단어가 포함되어 있습니다.

또한 텍스트 검색을 수행할 때 필드 이름이 명시적으로 지정되지 않는다는 점에 유의합니다. $text 연산자는 텍스트 인덱스로 인덱싱된 모든 필드를 검색합니다.

돌아가기

쿼리