MLEのJavaScriptでのVECTORデータ型のサポート
Oracle Multilingual Engine (MLE)では、JavaScript TypedArraysとSQLベクトルの間のINT8
、FLOAT32
およびFLOAT64
形式の変換がサポートされています。JavaScriptデータ型とVECTOR
データ型間のデータ交換は、MLE JavaScript SQLドライバ、MLEコール仕様およびMLE JavaScriptバインディングによってサポートされます。
VECTOR
データ型は、IN
、OUT
およびIN OUT
バインド引数、および戻り型として指定できます。MLEコール仕様のSIGNATURE
句では、次のJavaScript型がサポートされます。
Float32Array
Float64Array
Int8Array
表A-5 VECTORデータ型からJavaScript型へのマッピング
SQL型 | JavaScript型 |
---|---|
VECTOR(*, float32) |
Float32Array (TypedArray)
|
VECTOR(*, float64) |
Float64Array (TypedArray)
|
VECTOR(*, int8) |
Int8Array (TypedArray)
|
VECTOR(*) |
Float64Array 脚注1(TypedArray)
|
脚注1 ベクトル形式が指定されていない場合、デフォルトでFloat64Array
が使用されます。
表A-6 JavaScript型からVECTORデータ型へのマッピング
JavaScript型 | SQL型 |
---|---|
Float32Array |
VECTOR(*, float32) |
Float64Array |
VECTOR(*, float64) |
Int8Array |
VECTOR(*, int8) |
Array |
VECTOR(*, float64) |
関連項目:
-
VECTOR
データ型およびOracle AI Vector Search機能の詳細は、『Oracle Database Oracle AI Vector Search ユーザーズ・ガイド』を参照してください。
例A-1 MLEでのVECTORデータ型の使用
この例では、引数で使用されるVECTOR
データ型と、MLEコール仕様の戻り型のサポートを示します。
SET SERVEROUTPUT ON;
CREATE OR REPLACE MLE MODULE vec_mod
LANGUAGE JAVASCRIPT AS
/**
* Add two vectors
* @param v1 the first vector
* @param v2 the second vector
* @returns the resulting vector after adding v1 and v2
*/
export function addVectors(v1, v2){
return v1.map((element, index) => element + v2[index]);
}
/**
* Subtract two vectors
* @param v1 the first vector
* @param v2 the second vector
* @returns the resulting vector after subtracting v2 from v1
*/
export function subtractVectors(v1, v2){
return v1.map((element, index) => element - v2[index]);
}
/
CREATE OR REPLACE PACKAGE mle_vec_pkg AS
FUNCTION addVectors(
input_vector1 IN VECTOR,
input_vector2 IN VECTOR
)
RETURN VECTOR
AS MLE MODULE vec_mod
SIGNATURE 'addVectors';
FUNCTION subtractVectors(
input_vector1 IN VECTOR,
input_vector2 IN VECTOR
)
RETURN VECTOR
AS MLE MODULE vec_mod
SIGNATURE 'subtractVectors';
END mle_vec_pkg;
/
SELECT mle_vec_pkg.addVectors(
VECTOR('[1, 2]'),
VECTOR('[3, 4]')
) AS result;
結果:
RESULT
---------------------------------------------
[4.0E+000,6.0E+000]
SELECT mle_vec_pkg.subtractVectors(
VECTOR('[3, 4]'),
VECTOR('[1, 2]')
) AS result;
結果:
RESULT
---------------------------------------------
[2.0E+000,2.0E+000]
親トピック: MLEの型変換