SELECT id
FROM t1
ORDER BY l2_squared_distance(string_to_vector('[1,2,3]'), embbeding_column_name)
LIMIT 10;
ANN 함수
다음 표에는 벡터 거리를 계산하는 데 사용할 수 있는 함수가 나와 있습니다.
함수
데이터 유형
설명
approx_distance
입력: VECTOR
출력: 실제
선택한 알고리즘을 사용하여 거리 측정을 충족하는 상위 K개의 가장 가까운 행을 찾습니다. 이 함수는 벡터 열에서 상수 값에 대한 근사 최근접 이웃을 쿼리합니다. 두 임베딩 열의 VECTOR 유형과 상수 VECTOR는 동일한 크기여야 합니다. 이 함수가 ANN 검색 대신 KNN(정확한 검색) 검색으로 대체되는 경우가 있습니다. 이 함수를 사용하는 쿼리에는 한도를 포함해야 합니다.
query_vector: string_to_vector의 출력일 수 있지만 반드시 그렇지는 않은 'VECTOR' 유형의 상수입니다.
쉼표로 구분된 검색 문자열 옵션에는 다음이 포함됩니다.
distance_measure: 필수입니다. 알고리즘을 사용하여 벡터 간의 거리를 측정합니다. 다음 문자열 리터럴을 사용합니다.
L2_SQUARED
COSINE
DOT_PRODUCT
예: distance_measure=cosine
num_leaves_to_search: 선택사항입니다. ANN 벡터 유사성 검색을 프로빙할 리프 수를 지정합니다. 리프 수를 지정하지 않으면 MySQL용 CloudSQL에서 information_schema.innodb_vector_indexes에서 볼 수 있는 계산된 num_leaves_to_search 값을 선택합니다. 계산된 숫자는 일반적으로 검색 품질과 실적이 우수한 경우 좋은 출발점이 됩니다. 워크로드와 성능 또는 품질 절충점을 고려하여 num_leaves_to_search를 조정하는 것이 좋습니다.
SELECT id, approx_distance(embedding_column_name
string_to_vector('[1,1,1]'),
'distance_measure=cosine') dist from t1
ORDER BY dist LIMIT 10;
SELECT id
FROM t1
ORDER BY
approx_distance(
embedding_column_name
string_to_vector('[1,1,1]'),
'distance_measure=dot_product,num_leaves_to_search=100) LIMIT 4;