Zapytanie Firestore.
Etapy zapytania są wykonywane w następującej kolejności: 1. od 2. gdzie 3. wybierz 4. orderBy + startAt + endAt 5. (przesunięcie 6. limit)
Zapis JSON |
---|
{ "select": { object ( |
Pola | |
---|---|
select |
Opcjonalny podzbiór pól do zwrócenia. Działa jako element |
from[] |
Kolekcje, których ma dotyczyć zapytanie. |
where |
Filtr, który ma zostać zastosowany. |
orderBy[] |
Kolejność, która ma być stosowana do wyników zapytania. Firestore umożliwia wywołującym użytkownikom określenie pełnego sortowania, częściowego sortowania lub całkowity brak zamówień. We wszystkich przypadkach Firestore gwarantuje stabilną kolejność na podstawie tych reguł:
Pola są dodawane z tym samym kierunkiem sortowania co w przypadku ostatniego określonego porządku, czyli „ASCENDING” jeśli nie określono zamówienia. Przykład:
|
startAt |
Potencjalny prefiks pozycji w zestawie wyników, od której ma się rozpoczynać zapytanie. Kolejność w zbiorze wyników jest określana na podstawie klauzuli
Wyniki tego zapytania są uporządkowane według: Kursory mogą odwoływać się do pełnej kolejności lub do prefiksu lokalizacji, ale nie mogą odwoływać się do większej liczby pól niż podano w Wracając do powyższego przykładu, umieszczenie następujących kursorów początkowych będzie miało różny wpływ:
W przeciwieństwie do funkcji Wymagane:
|
endAt |
Potencjalny prefiks pozycji w zestawie wyników, na której kończy się zapytanie. Jest to podobne do funkcji Wymagane:
|
offset |
Liczba dokumentów do pominięcia przed zwróceniem pierwszego wyniku. Ma to zastosowanie po ograniczeniach określonych przez Wymagane:
|
limit |
Maksymalna liczba wyników do zwrócenia. Ma zastosowanie po wszystkich innych ograniczeniach. Wymagane:
|
findNearest |
Opcjonalnie. Wyszukiwanie potencjalnych najbliższych sąsiadów. Ma zastosowanie po wszystkich innych filtrach i kolejności. Znajduje wektory dystrybucyjne najbliższe danemu wektorowi zapytania. |
Odwzorowanie
Odwzorowanie pól dokumentu do zwrócenia.
Zapis JSON |
---|
{
"fields": [
{
object ( |
Pola | |
---|---|
fields[] |
Pola do zwrócenia. Jeśli pole jest puste, zwracane są wszystkie pola. Aby zwrócić tylko nazwę dokumentu, użyj |
Selektor kolekcji
Wybór kolekcji, np. messages as m1
.
Zapis JSON |
---|
{ "collectionId": string, "allDescendants": boolean } |
Pola | |
---|---|
collectionId |
Identyfikator kolekcji. Jeśli jest ustawiony, wybiera tylko kolekcje o tym identyfikatorze. |
allDescendants |
Jeśli zasada ma wartość Fałsz, wybiera tylko kolekcje, które są bezpośrednimi elementami podrzędnymi elementu |
Filtr
Filtr.
Zapis JSON |
---|
{ // Union field |
Pola | |
---|---|
Pole sumy filter_type . Typ filtra. filter_type może mieć tylko jedną z tych wartości: |
|
compositeFilter |
Filtr złożony. |
fieldFilter |
Filtr w polu dokumentu. |
unaryFilter |
Filtr, który przyjmuje dokładnie 1 argument. |
Filtr złożony
Filtr, który łączy wiele innych filtrów za pomocą podanego operatora.
Zapis JSON |
---|
{ "op": enum ( |
Pola | |
---|---|
op |
Operator łączący wiele filtrów. |
filters[] |
Lista filtrów do połączenia. Wymagane:
|
Operator
Operator filtra złożonego.
Wartości w polu enum | |
---|---|
OPERATOR_UNSPECIFIED |
Nie określono. Tej wartości nie można używać. |
AND |
Dokumenty są wymagane w przypadku wszystkich połączonych filtrów. |
OR |
Dokumenty muszą spełniać warunki co najmniej 1 z połączonych filtrów. |
Filtr pól
Filtr określonego pola.
Zapis JSON |
---|
{ "field": { object ( |
Pola | |
---|---|
field |
Pole, według którego chcesz filtrować. |
op |
Operator, według którego chcesz filtrować. |
value |
Wartość do porównania. |
Operator
Operator filtra pól.
Wartości w polu enum | |
---|---|
OPERATOR_UNSPECIFIED |
Nie określono. Tej wartości nie można używać. |
LESS_THAN |
Podana wartość Wymagane:
|
LESS_THAN_OR_EQUAL |
Podana wartość Wymagane:
|
GREATER_THAN |
Podana wartość Wymagane:
|
GREATER_THAN_OR_EQUAL |
Podana wartość Wymagane:
|
EQUAL |
Podana wartość field jest równa wartości podanej jako value . |
NOT_EQUAL |
Podana wartość Wymagane:
|
ARRAY_CONTAINS |
Podana wartość field jest tablicą, która zawiera podaną wartość value . |
IN |
Podana wartość Wymagane:
|
ARRAY_CONTAINS_ANY |
Podana tablica Wymagane:
|
NOT_IN |
Wartości funkcji Wymagane:
|
Filtr jednoargumentowy
Filtr z jednym operandem.
Zapis JSON |
---|
{ "op": enum ( |
Pola | |
---|---|
op |
Jednoargumentowy operator do zastosowania. |
Pole sumy operand_type . Argument filtra. operand_type może mieć tylko jedną z tych wartości: |
|
field |
Pole, do którego ma zostać zastosowany operator. |
Operator
Operator jednoargumentowy.
Wartości w polu enum | |
---|---|
OPERATOR_UNSPECIFIED |
Nie określono. Tej wartości nie można używać. |
IS_NAN |
Podana wartość field jest równa NaN . |
IS_NULL |
Podana wartość field jest równa NULL . |
IS_NOT_NAN |
Podana wartość Wymagane:
|
IS_NOT_NULL |
Podana wartość Wymagane:
|
Zamówienie
Kolejność na polu.
Zapis JSON |
---|
{ "field": { object ( |
Pola | |
---|---|
field |
Pole, według którego ma być ustalana kolejność. |
direction |
Kierunek sortowania. Domyślna wartość to |
Kierunek
Kierunek sortowania.
Wartości w polu enum | |
---|---|
DIRECTION_UNSPECIFIED |
Nie określono. |
ASCENDING |
Rosnąco. |
DESCENDING |
Malejąco. |
Najbliższe
Konfiguracja wyszukiwania najbliższych sąsiadów.
Zapis JSON |
---|
{ "vectorField": { object ( |
Pola | |
---|---|
vectorField |
Wymagane. Zindeksowane pole wektora do wyszukania. Zwracane mogą być tylko dokumenty zawierające wektory, których wymiarowość pasuje do queryVector. |
queryVector |
Wymagane. Wektor zapytania, którego szukamy. Musi być wektorem o maksymalnie 2048 wymiarach. |
distanceMeasure |
Wymagane. Miara odległości, której chcesz użyć, wymagany. |
limit |
Wymagane. Liczba najbliższych sąsiadów do zwrócenia. Wartość musi być dodatnią liczbą całkowitą nie większą niż 1000. |
Odległość
Miara odległości używana przy porównywaniu wektorów.
Wartości w polu enum | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
Nie należy ustawiać tego ustawienia. |
EUCLIDEAN |
Mierzy odległość UECLIDEAN między wektorami. Więcej informacji: euklidesowa. |
COSINE |
Porównuje wektory na podstawie kąta między nimi, co pozwala zmierzyć podobieństwo, które nie jest oparte na wielkości wektorów. Zalecamy używanie parametru DOT_PRODUCT z wektorami znormalizowanymi jednostkami zamiast odległości COSINE, co jest odpowiednikiem matematycznym o większej wydajności. Więcej informacji znajdziesz w sekcji Podobieństwo cosinusowe. |
DOT_PRODUCT |
Podobny do cosinusa, ale ma wpływ na wielkość wektorów. Więcej informacji znajdziesz w artykule Produkt skalarny. |