Input
DROP TABLE TargetTable_udt;
CREATE MULTISET TABLE TargetTable_udt(id INTEGER, array_col Vector) NO PRIMARY INDEX;
INSERT INTO TargetTable_udt values(1, '0.0000333, 0.2, 0.1');
INSERT INTO TargetTable_udt values(2, '0.5, 0.4, 0.4');
INSERT INTO TargetTable_udt values(3, '1, 0.8, 0.9');
INSERT INTO TargetTable_udt values(4, '0.01, 0.4, 0.2');
DROP TABLE RefTable_udt;
CREATE MULTISET TABLE RefTable_udt(id INTEGER, array_col Vector) NO PRIMARY INDEX;
INSERT INTO RefTable_udt values(5, '0.93, 0.4, 0.7');
INSERT INTO RefTable_udt values(6, '0.83, 0.3, 0.6');
INSERT INTO RefTable_udt values(7, '0.73, 0.5, 0.7');
Query
SELECT target_id, reference_id, distancetype, cast(distance as decimal(36,15)) as distance FROM TD_VECTORDISTANCE (
ON TargetTable_udt as TargetTable
ON RefTable_udt as ReferenceTable Dimension
USING
TargetIDColumn('id')
TargetFeatureColumns('array_col')
RefIDColumn('id')
RefFeatureColumns('array_col')
DistanceMeasure('euclidean','cosine','manhattan')
topk(2)
EmbeddingSize(3)
) as dt order by 3,1,2,4;
Output
Target_ID |
Reference_ID |
DistanceType |
Distance |
1 |
5 |
cosine |
0.45486518 |
1 |
7 |
cosine |
0.32604815 |
2 |
5 |
cosine |
0.02608923 |
2 |
7 |
cosine |
0.00797609 |
3 |
5 |
cosine |
0.02415054 |
3 |
7 |
cosine |
0.00337338 |
4 |
5 |
cosine |
0.43822243 |
4 |
7 |
cosine |
0.31184844 |
1 |
6 |
euclidean |
0.97408661 |
1 |
7 |
euclidean |
0.99138861 |
2 |
6 |
euclidean |
0.39862262 |
2 |
7 |
euclidean |
0.39102429 |
3 |
5 |
euclidean |
0.45265881 |
3 |
7 |
euclidean |
0.45044423 |
4 |
6 |
euclidean |
0.91782351 |
4 |
7 |
euclidean |
0.88226980 |
1 |
6 |
manhattan |
1.42996670 |
1 |
7 |
manhattan |
1.62996670 |
2 |
6 |
manhattan |
0.63000000 |
2 |
7 |
manhattan |
0.63000000 |
3 |
5 |
manhattan |
0.67000000 |
3 |
7 |
manhattan |
0.77000000 |
4 |
6 |
manhattan |
1.32000000 |
4 |
7 |
manhattan |
1.32000000 |