Docs Menu
Docs Home
/ / /
Ruby MongoDB Driver
/

Atlas search 인덱스

이 페이지의 내용

  • 검색 인덱스 만들기
  • 검색 인덱스 업데이트
  • 검색 인덱스 삭제
  • 검색 인덱스 나열

MongoDB Atlas 에서 호스팅하는 데이터베이스를 사용하는 경우 드라이버는 search_indexes 속성을 통해 컬렉션에서 Atlas Search 인덱스 를 생성, 삭제 및 볼 수 있는 기능을 제공합니다.

client = Mongo::Client.new(your_atlas_uri, database: 'music')
client[:bands].search_indexes
# => #<Mongo::SearchIndex::View:0x000055e2822b9318 @collection=#<Mongo::Collection:0x660 namespace=music.bands> ...>

검색 인덱스는 한 번에 하나씩 생성하거나 단일 작업으로 여러 개를 병렬로 생성할 수 있습니다.

단일 인덱스를 생성하려면 search_indexes#create_one 을 사용하고, 첫 번째 인수로 인덱스 정의를 전달하고, 두 번째 인수로 인덱스의 이름(선택 사항)을 전달합니다.

client[:bands].search_indexes.create_one({ dynamic: true })
client[:bands].search_indexes.create_one(
{
dynamic: false,
fields: {
name: { type: 'string', analyzer: 'lucene.simple' }
}
},
'band-name-index'
)

여러 인덱스를 만들려면 인덱스 사양 배열을 허용하는 search_indexes#create_many 을 사용합니다. create_one 와 달리 각 인덱스 사양은 인덱스를 정의하는 definition 키가 적어도 포함된 해시입니다. 각각에는 인덱스 이름을 지정하기 위해 name 키를 지정할 수도 있습니다.

client[:bands].search_indexes.create_many([
{ definition: { dynamic: true } },
{ name: 'band-name-index,
definition: {
dynamic: false,
fields: {
name: { type: 'string', analyzer: 'lucene.simple' }
}
}
},
])

create_one 또는 create_many 을 호출하든 관계없이 메서드는 인덱스가 생성되기 전에 즉시 반환됩니다. 그러면 인덱스가 백그라운드에서 비동기적으로 생성됩니다.

프로그래밍 방식으로 Atlas 검색 인덱스를 업데이트할 수 있습니다. 예를 들어, 사용되는 분석기를 변경하거나 동적 분석기 대신 명시적 필드 매핑을 제공하기 위해 이 작업을 수행할 수 있습니다. 이렇게 하려면 search_indexes#update_one 메서드를 사용합니다.

client[:bands].search_indexes.update_one(new_definition, id: index_id)
client[:bands].search_indexes.update_one(new_definition, name: index_name)

인덱스는 ID 또는 이름으로 식별할 수 있지만 둘 중 하나를 지정해야 합니다. 새 인덱스 정의는 완전한 정의여야 하며, 기존 정의에 지정된 대로 우선합니다.

업데이트하려는 인덱스의 ID 또는 이름을 가져오려면 Atlas Search 인덱스를 나열 할 수 있습니다.

Atlas 검색 인덱스를 삭제하려면 search_indexes#drop_one 을 호출하고 삭제하려는 인덱스의 id 또는 name 중 하나를 제공합니다.

client[:bands].search_indexes.drop_one(id: index_id)
client[:bands].search_indexes.drop_one(name: index_name)

두 경우 모두 메서드가 즉시 반환되고 인덱스가 백그라운드에서 비동기적으로 삭제됩니다.

삭제하려는 인덱스의 ID 또는 이름을 가져오려면 Atlas Search 인덱스를 나열 할 수 있습니다.

사용 가능한 검색 인덱스를 나열하려면 search_indexes 객체를 반복합니다.

client[:bands].search_indexes.each do |index_spec|
p index_spec['id']
p index_spec['name']
p index_spec['status']
p index_spec['queryable']
p index_spec['latestDefinition']
end

돌아가기

인덱싱