Una consulta de Firestore.
Las etapas de consulta se ejecutan en el siguiente orden: 1. de 2. donde 3. selecciona 4. orderBy + startAt + endAt 5. desplazamiento 6. límite
Representación JSON |
---|
{ "select": { object ( |
Campos | |
---|---|
select |
Subconjunto opcional de los campos que se mostrarán. Esto actúa como un elemento |
from[] |
Las colecciones a consultar. |
where |
El filtro que se aplicará. |
orderBy[] |
El orden que se aplica a los resultados de la consulta. Firestore permite que los emisores proporcionen un orden completo, uno parcial o ninguno. En todos los casos, Firestore garantiza un orden estable con las siguientes reglas:
Los campos se agregan con la misma dirección de orden que el último orden especificado o con "ASCENDING" si no se especificó ningún orden. Por ejemplo:
|
startAt |
Es un posible prefijo de una posición en el conjunto de resultados en el que puede comenzar la consulta. El orden del conjunto de resultados se basa en la cláusula
Los resultados de esta consulta se ordenan por Los cursores pueden hacer referencia al orden completo o a un prefijo de la ubicación, aunque no pueden hacer referencia a más campos de los que se encuentran en el Siguiendo con el ejemplo anterior, adjuntar los siguientes cursores de inicio tendrá un impacto diferente:
A diferencia de Requisitos:
|
endAt |
Es un posible prefijo de una posición en el conjunto de resultados en el que finaliza la consulta. Es similar a Requisitos:
|
offset |
La cantidad de documentos que se deben omitir antes de mostrar el primer resultado. Esto se aplica después de las restricciones especificadas por las cláusulas Requisitos:
|
limit |
La cantidad máxima de resultados que se mostrarán. Se aplica después de todas las demás restricciones. Requisitos:
|
findNearest |
Opcional. Una posible búsqueda de vecinos más cercanos. Se aplica después de todos los demás filtros y orden. Encuentra las incorporaciones vectoriales más cercanas al vector de consulta determinado. |
Proyección
La proyección de los campos del documento que se mostrarán.
Representación JSON |
---|
{
"fields": [
{
object ( |
Campos | |
---|---|
fields[] |
Los campos que se deben mostrar. Si está vacío, se muestran todos los campos. Para que solo se muestre el nombre del documento, usa |
CollectionSelector
Una selección de una colección, como messages as m1
.
Representación JSON |
---|
{ "collectionId": string, "allDescendants": boolean } |
Campos | |
---|---|
collectionId |
El ID de la colección. Cuando se establece, selecciona solo colecciones con este ID. |
allDescendants |
Cuando es falso, solo selecciona colecciones que son elementos secundarios inmediatos del |
Filtro
Un filtro
Representación JSON |
---|
{ // Union field |
Campos | |
---|---|
Campo de unión filter_type . El tipo de filtro. Las direcciones (filter_type ) solo pueden ser una de las siguientes opciones: |
|
compositeFilter |
Un filtro compuesto. |
fieldFilter |
Un filtro en el campo de un documento. |
unaryFilter |
Un filtro que toma exactamente un argumento. |
CompositeFilter
Es un filtro que combina varios filtros más con el operador determinado.
Representación JSON |
---|
{ "op": enum ( |
Campos | |
---|---|
op |
Operador para combinar varios filtros. |
filters[] |
Es la lista de filtros que se combinarán. Requisitos:
|
Operador
Un operador de filtro compuesto.
Enumeradores | |
---|---|
OPERATOR_UNSPECIFIED |
No se especifica. No se debe usar este valor. |
AND |
Los documentos deben cumplir con todos los filtros combinados. |
OR |
Los documentos deben cumplir con al menos uno de los filtros combinados. |
FieldFilter
Un filtro en un campo específico.
Representación JSON |
---|
{ "field": { object ( |
Campos | |
---|---|
field |
El campo que se usará para filtrar. |
op |
Operador que se usará para filtrar. |
value |
Valor con el que se realizará la comparación. |
Operador
Un operador de filtro de campo.
Enumeradores | |
---|---|
OPERATOR_UNSPECIFIED |
No se especifica. No se debe usar este valor. |
LESS_THAN |
El Requisitos:
|
LESS_THAN_OR_EQUAL |
El Requisitos:
|
GREATER_THAN |
El Requisitos:
|
GREATER_THAN_OR_EQUAL |
El Requisitos:
|
EQUAL |
El field especificado es igual al value especificado. |
NOT_EQUAL |
El Requisitos:
|
ARRAY_CONTAINS |
La field proporcionada es un array que contiene la value especificada. |
IN |
El Requisitos:
|
ARRAY_CONTAINS_ANY |
El Requisitos:
|
NOT_IN |
El valor de Requisitos:
|
UnaryFilter
Un filtro con un solo operando.
Representación JSON |
---|
{ "op": enum ( |
Campos | |
---|---|
op |
El operador unario que se aplicará. |
Campo de unión operand_type . El argumento del filtro. Las direcciones (operand_type ) solo pueden ser una de las siguientes opciones: |
|
field |
Campo en el que se aplica el operador. |
Operador
Un operador unario.
Enumeradores | |
---|---|
OPERATOR_UNSPECIFIED |
No se especifica. No se debe usar este valor. |
IS_NAN |
El field especificado es igual a NaN . |
IS_NULL |
El field especificado es igual a NULL . |
IS_NOT_NAN |
El Requisitos:
|
IS_NOT_NULL |
El Requisitos:
|
Pedidos
Un pedido en un campo.
Representación JSON |
---|
{ "field": { object ( |
Campos | |
---|---|
field |
El campo que se usará para ordenar. |
direction |
La dirección en la que se debe ordenar. La configuración predeterminada es |
Dirección
Una dirección de ordenamiento.
Enumeradores | |
---|---|
DIRECTION_UNSPECIFIED |
No se especifica. |
ASCENDING |
Ascendente. |
DESCENDING |
Descendente. |
FindNearest
Configuración de búsqueda de vecinos más cercanos.
Representación JSON |
---|
{ "vectorField": { object ( |
Campos | |
---|---|
vectorField |
Obligatorio. Es un campo de vector indexado para realizar búsquedas. Solo se pueden mostrar documentos que contienen vectores cuya dimensionalidad coincide con queryVector. |
queryVector |
Obligatorio. El vector de consulta que se busca. Debe ser un vector de no más de 2,048 dimensiones. |
distanceMeasure |
Obligatorio. La medida de distancia que se usará, obligatoria. |
limit |
Obligatorio. La cantidad de vecinos más cercanos que se mostrarán. Debe ser un número entero positivo no más de 1,000. |
DistanceMeasure
Es la medida de distancia que se usará al comparar vectores.
Enumeradores | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
No se debe establecer. |
EUCLIDEAN |
Mide la distancia de EUCLIDEAN entre los vectores. Consulta Euclidea para obtener más información |
COSINE |
Compara vectores según el ángulo entre ellos, lo que te permite medir la similitud que no se basa en la magnitud de los vectores. Recomendamos utilizar DOT_PRODUCT con vectores de unidad normalizados en lugar de la distancia COSINE, que es matemáticamente equivalente con un mejor rendimiento. Consulta Similitud coseno para obtener más información. |
DOT_PRODUCT |
Similar al coseno, pero se ve afectado por la magnitud de los vectores. Consulta Dot Product para obtener más información. |