UNPKG

@google-cloud/firestore

Version:
55 lines (54 loc) 2.39 kB
/** * Copyright 2024 Google LLC. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as firestore from '@google-cloud/firestore'; /** * Specifies the behavior of the {@link VectorQuery} generated by a call to {@link Query.findNearest}. */ export interface VectorQueryOptions { /** * A string or {@link FieldPath} specifying the vector field to search on. */ vectorField: string | firestore.FieldPath; /** * The {@link VectorValue} used to measure the distance from `vectorField` values in the documents. */ queryVector: firestore.VectorValue | Array<number>; /** * Specifies the upper bound of documents to return, must be a positive integer with a maximum value of 1000. */ limit: number; /** * Specifies what type of distance is calculated when performing the query. */ distanceMeasure: 'EUCLIDEAN' | 'COSINE' | 'DOT_PRODUCT'; /** * Optionally specifies the name of a field that will be set on each returned DocumentSnapshot, * which will contain the computed distance for the document. */ distanceResultField?: string | firestore.FieldPath; /** * Specifies a threshold for which no less similar documents will be returned. The behavior * of the specified `distanceMeasure` will affect the meaning of the distance threshold. * * - For `distanceMeasure: "EUCLIDEAN"`, the meaning of `distanceThreshold` is: * SELECT docs WHERE euclidean_distance <= distanceThreshold * - For `distanceMeasure: "COSINE"`, the meaning of `distanceThreshold` is: * SELECT docs WHERE cosine_distance <= distanceThreshold * - For `distanceMeasure: "DOT_PRODUCT"`, the meaning of `distanceThreshold` is: * SELECT docs WHERE dot_product_distance >= distanceThreshold */ distanceThreshold?: number; }