클래스: Mongo::SearchIndex::View

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
열거 가능, Collection::Helpers, 재시도 가능
다음에 정의됨:
lib/ Mongo/search_index/view.rb

개요

검색 인덱스의 뷰를 나타내는 클래스입니다.

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

Collection::Helpers에 포함된 메서드

#do_drop

Retryable에 포함된 메서드

#read_Worker, #select_server, #with_overload_retry, #write_Worker

생성자 세부 정보

#initialize(컬렉션, options = {}) ⇒ 보기

새 검색 인덱스 뷰를 만듭니다.

매개변수:

  • 컬렉션 (컬렉션)

    컬렉션.

  • 옵션 (해시) (기본값: {})

    뷰의 동작을 구성하는 옵션입니다.

옵션 해시(options):

  • :id (string)

    쿼리 할 특정 인덱스 ID(선택 사항)

  • :name (string)

    쿼리 할 특정 인덱스 의 이름(선택 사항)

  • :aggregate (해시)

    사용 가능한 인덱스를 쿼리할 때 집계 명령으로 보낼 옵션 해시입니다.

다음을 발생시킵니다.

  • (ArgumentError)


36
37
38
39
40
41
42
43
44
45
# 파일 'lib/ Mongo/search_index/view.rb', 줄 36

def 초기화(컬렉션, 옵션 = {})
  @collection = 컬렉션
  @requested_index_id = 옵션[:id]
  @requested_index_name = 옵션[:name]
  @aggregate_options = 옵션[:aggregate] || {}

  반환 만약 @aggregate_options.is_a?(해시)

  올리다 ArgumentError, " :aggregate 옵션은 반드시 해시여야 합니다 (got a #{@aggregate_options.class})"
end

인스턴스 속성 세부 정보

#aggregate_options 해시(읽기 전용)

사용 가능한 인덱스를 쿼리할 때 집계 명령에 사용할 옵션 해시를 반환합니다.

반환합니다:

  • (해시)

    사용 가능한 인덱스를 쿼리할 때 집계 명령에 사용할 옵션 해시입니다.



23
24
25
# 파일 'lib/ Mongo/search_index/view.rb', 줄 23

def aggregate_options
  @aggregate_options
end

#컬렉션Mongo::Collection (읽기 전용)

이 뷰가 속한 컬렉션 반환합니다.

반환합니다:



13
14
15
# 파일 'lib/ Mongo/search_index/view.rb', 줄 13

def 컬렉션
  @collection
end

#requests_index_idnil | 문자열(읽기 전용)

쿼리 할 인덱스 ID를 반환합니다.

반환합니다:

  • (nil | string)

    쿼리 할 인덱스 ID



16
17
18
# 파일 'lib/ Mongo/search_index/view.rb', 줄 16

def requests_index_id
  @requested_index_id
end

#requests_index_namenil | 문자열(읽기 전용)

쿼리 할 인덱스 이름을 반환합니다.

반환합니다:

  • (nil | string)

    쿼리 할 인덱스 이름



19
20
21
# 파일 'lib/ Mongo/search_index/view.rb', 줄 19

def requests_index_name
  @requested_index_name
end

인스턴스 메서드 세부 정보

#create_many(인덱스)Array<String>

단일 명령으로 여러 개의 검색 인덱스를 생성합니다.

매개변수:

  • 인덱스 (Array<Hash>)

    생성할 인덱스에 대한 설명입니다. 목록의 각 요소는 정의 키, 선택적 이름 키 및 선택적 유형 키가 있는 해시여야 합니다. 유형 키는 ' 검색' 또는 'vectorSearch' 중 하나여야 합니다. 기본값 은 ' 검색'입니다.

반환합니다:

  • (Array<String>)

    새 검색 인덱스의 이름입니다.



71
72
73
74
75
76
77
78
79
# 파일 'lib/ Mongo/search_index/view.rb', 줄 71

def create_many(인덱스)
  사양 = spec_with(인덱스: 인덱스.map { |v| validate_search_index!(v) })
  작업 = 작업::검색 인덱스 만들기.신규(사양)
  컨텍스트 = execution_context
  추적 프로그램.trace_operation(작업, 컨텍스트, op_name: 'createSearchIndexes') do
    결과 = 작업.실행(Next_primary, 컨텍스트: 컨텍스트)
    결과.first['indexesCreated '].map { |idx| idx['name'] }
  end
end

#create_one(definition, 이름: nil, 유형: ' 검색') ⇒ 문자열

지정된 정의를 사용하여 단일 검색 인덱스 생성합니다. 이름이 제공되면 새 인덱스 해당 이름이 지정됩니다.

매개변수:

  • 정의 (해시)

    검색 인덱스 의 정의입니다.

  • 이름 (nil | 문자열) (기본값: nil)

    새 검색 인덱스 에 부여할 이름입니다.

  • 유형 (string) (기본값: '검색')

    검색 인덱스 의 유형입니다. 가능한 값은 ' 검색' 및 'vectorSearch'입니다. 기본값 은 ' 검색'입니다.

반환합니다:

  • (string)

    새 검색 인덱스 의 이름입니다.



56
57
58
59
60
61
# 파일 'lib/ Mongo/search_index/view.rb', 줄 56

def create_one(정의, 이름: nil, 유형: '검색 ')
  사양 = { 정의: 정의, 유형: 유형 }. do |SP|
    SP[:name] = 이름 하지 않는 한 이름.nil?
  end
  create_many([ 사양 ]).first
end

#drop_one(ID: nil, 이름: nil) ⇒ Mongo::Operation::Result | false

지정된 ID 또는 이름으로 검색 인덱스 삭제합니다. 둘 중 하나를 지정해야 하지만 둘 다 지정할 수는 없습니다.

매개변수:

  • id (string) (기본값: nil)

    삭제할 인덱스 의 ID

  • 이름 (string) (기본값: nil)

    삭제할 인덱스 의 이름

반환합니다:

  • (Mongo::Operation::Result | false)

    연산 결과를 반환하고, 지정된 인덱스 존재하지 않으면 false를 반환합니다.



89
90
91
92
93
94
95
96
97
98
99
100
101
102
# 파일 'lib/ Mongo/search_index/view.rb', 줄 89

def drop_one(ID: nil, 이름: nil)
  validate_id_or_name!(id, 이름)

  사양 = spec_with(index_id: id, index_name: 이름)
  op = 작업::DropSearchIndex.신규(사양)
  컨텍스트 = execution_context

  추적 프로그램.trace_operation(op, 컨텍스트, op_name: 'dropSearchIndex') do
    # 사양에 따라:
    # 드라이버는 다음에 대한 NamespaceNotFound 오류를 억제해야 합니다.
    # ``dropSearchIndex`` 헬퍼.  삭제 작업은 멱등 있어야 합니다.
    do_drop(op, nil, 컨텍스트)
  end
end

#각각(&block) ⇒ self | 열거자

검색 인덱스를 반복합니다.

매개변수:

  • 차단 (Proc)

    주어진 경우 각 검색 인덱스 차단 에 양보됩니다.

반환합니다:

  • (self | Enumerator)

    차단 주어지면 self가 반환됩니다. 그렇지 않으면 열거자가 반환됩니다.



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 파일 'lib/ Mongo/search_index/view.rb', 줄 111

def (&차단)
  @result ||= 시작
    사양 = {}. do |s|
      s[:id] = requests_index_id 만약 requests_index_id
      s[:name] = requests_index_name 만약 requests_index_name
    end

    컬렉션.(read_concern: {}).집계(
      [ { '$listSearchIndexes' => 사양 } ],
      aggregate_options
    )
  end

  반환 @result.to_enum 하지 않는 한 차단

  @result.(&차단)
  self
end

#비어 있나요?true | false

검색 인덱스 열거형이 비어 있는지 쿼리합니다.

반환합니다:

  • (true | false)

    열거형이 비어 있는지 여부.



156
157
158
# 파일 'lib/ Mongo/search_index/view.rb', 줄 156

def 비어 있나요?
  카운트.zero?
end

#update_one(definition, ID: nil, name: nil) ⇒ Mongo::Operation::Result

지정된 ID 또는 이름으로 검색 인덱스 업데이트합니다. 둘 중 하나를 제공해야 하지만 둘 다 제공할 수는 없습니다.

매개변수:

  • 정의 (해시)

    지정된 검색 인덱스 대체할 정의입니다.

  • id (nil | 문자열) (기본값: nil)

    업데이트 할 검색 인덱스 의 ID입니다.

  • 이름 (nil | 문자열) (기본값: nil)

    업데이트 할 검색 인덱스 의 이름

반환합니다:



139
140
141
142
143
144
145
146
147
148
# 파일 'lib/ Mongo/search_index/view.rb', 줄 139

def update_one(정의, ID: nil, 이름: nil)
  validate_id_or_name!(id, 이름)

  사양 = spec_with(index_id: id, index_name: 이름, index: 정의)
  op = 작업::updateSearchIndex.신규(사양)
  컨텍스트 = execution_context
  추적 프로그램.trace_operation(op, 컨텍스트, op_name: 'updateSearchIndex') do
    op.실행(Next_primary, 컨텍스트: 컨텍스트)
  end
end