@@ -46,6 +46,7 @@ import {
4646 PQEncoderType ,
4747 PropertyConfig ,
4848 PropertyVectorizerConfig ,
49+ RQConfig ,
4950 ReferenceConfig ,
5051 ReplicationConfig ,
5152 Reranker ,
@@ -182,6 +183,16 @@ export const parseVectorIndex = (module: ModuleConfig<VectorIndexType, VectorInd
182183 } ,
183184 } ;
184185 }
186+ if ( QuantizerGuards . isRQCreate ( quantizer ) ) {
187+ const { type, ...quant } = quantizer ;
188+ return {
189+ ...conf ,
190+ rq : {
191+ ...quant ,
192+ enabled : true ,
193+ } ,
194+ } ;
195+ }
185196} ;
186197
187198export const parseVectorizerConfig = ( config ?: VectorizerConfig ) : any => {
@@ -202,11 +213,11 @@ export const makeVectorsConfig = <TProperties extends Properties | undefined = u
202213 const vectorizersConfig = Array . isArray ( configVectorizers )
203214 ? configVectorizers
204215 : [
205- {
206- ...configVectorizers ,
207- name : configVectorizers . name || 'default' ,
208- } ,
209- ] ;
216+ {
217+ ...configVectorizers ,
218+ name : configVectorizers . name || 'default' ,
219+ } ,
220+ ] ;
210221 vectorizersConfig . forEach ( ( v ) => {
211222 if ( v . vectorIndex . name === 'dynamic' && ! supportsDynamicVectorIndex . supports ) {
212223 throw new WeaviateUnsupportedFeatureError ( supportsDynamicVectorIndex . message ) ;
@@ -329,18 +340,18 @@ class ConfigMapping {
329340 vectorizer :
330341 v . vectorizer === 'none'
331342 ? {
332- name : 'none' ,
333- config : undefined ,
334- }
343+ name : 'none' ,
344+ config : undefined ,
345+ }
335346 : {
336- name : v . vectorizer ,
337- config : v . moduleConfig
338- ? ( {
339- ...( v . moduleConfig [ v . vectorizer ] as any ) ,
340- vectorizeCollectionName : ( v . moduleConfig [ v . vectorizer ] as any ) . vectorizeClassName ,
341- } as VectorizerConfig )
342- : undefined ,
343- } ,
347+ name : v . vectorizer ,
348+ config : v . moduleConfig
349+ ? ( {
350+ ...( v . moduleConfig [ v . vectorizer ] as any ) ,
351+ vectorizeCollectionName : ( v . moduleConfig [ v . vectorizer ] as any ) . vectorizeClassName ,
352+ } as VectorizerConfig )
353+ : undefined ,
354+ } ,
344355 indexConfig : ConfigMapping . vectorIndex ( v . vectorIndexConfig , v . vectorIndexType ) ,
345356 indexType : ConfigMapping . vectorIndexType ( v . vectorIndexType ) ,
346357 } ,
@@ -468,11 +479,13 @@ class ConfigMapping {
468479 throw new WeaviateDeserializationError (
469480 'Vector index vector cache max objects was not returned by Weaviate'
470481 ) ;
471- let quantizer : PQConfig | BQConfig | SQConfig | undefined ;
482+ let quantizer : PQConfig | BQConfig | SQConfig | RQConfig | undefined ;
472483 if ( exists < Record < string , any > > ( v . pq ) && v . pq . enabled === true ) {
473484 quantizer = ConfigMapping . pq ( v . pq ) ;
474485 } else if ( exists < Record < string , any > > ( v . bq ) && v . bq . enabled === true ) {
475486 quantizer = ConfigMapping . bq ( v . bq ) ;
487+ } else if ( exists < Record < string , any > > ( v . rq ) && v . rq . enabled === true ) {
488+ quantizer = ConfigMapping . rq ( v . rq ) ;
476489 } else if ( exists < Record < string , any > > ( v . sq ) && v . sq . enabled === true ) {
477490 quantizer = ConfigMapping . sq ( v . sq ) ;
478491 } else {
@@ -508,6 +521,19 @@ class ConfigMapping {
508521 type : 'bq' ,
509522 } ;
510523 }
524+ static rq ( v ?: Record < string , unknown > ) : RQConfig | undefined {
525+ if ( v === undefined ) throw new WeaviateDeserializationError ( 'RQ was not returned by Weaviate' ) ;
526+ if ( ! exists < boolean > ( v . enabled ) )
527+ throw new WeaviateDeserializationError ( 'RQ enabled was not returned by Weaviate' ) ;
528+ if ( v . enabled === false ) return undefined ;
529+ const bits = v . bits === undefined ? 6 : ( v . bits as number ) ;
530+ const rescoreLimit = v . rescoreLimit === undefined ? 20 : ( v . rescoreLimit as number ) ;
531+ return {
532+ bits,
533+ rescoreLimit,
534+ type : 'rq' ,
535+ } ;
536+ }
511537 static sq ( v ?: Record < string , unknown > ) : SQConfig | undefined {
512538 if ( v === undefined ) throw new WeaviateDeserializationError ( 'SQ was not returned by Weaviate' ) ;
513539 if ( ! exists < boolean > ( v . enabled ) )
0 commit comments