Firestore 쿼리
쿼리 단계는 1. from 2. 여기서 3. 4. orderBy + startAt + endAt 5. offset 6. Limit를 선택합니다.
JSON 표현 |
---|
{ "select": { object ( |
필드 | |
---|---|
select |
반환할 필드의 선택적 하위 집합입니다. 쿼리에서 반환된 문서에 대해 |
from[] |
쿼리할 컬렉션입니다. |
where |
적용할 필터입니다. |
orderBy[] |
쿼리 결과에 적용할 순서입니다. Firestore를 사용하면 호출자가 전체 순서 지정 또는 부분 순서 지정을 제공하거나 아예 순서 지정을 제공하지 않을 수 있습니다. 모든 경우에 Firestore는 다음 규칙을 통해 안정적인 순서를 보장합니다.
필드는 지정된 마지막 순서와 동일한 정렬 방향 또는 'ASCENDING'으로 추가됩니다. 표시됩니다. 예를 들면 다음과 같습니다.
|
startAt |
결과 집합에서 쿼리를 시작할 위치의 잠재 접두사입니다. 결과 세트의 순서는 원래 쿼리의
이 쿼리의 결과는 커서는 전체 순서 또는 위치의 접두사를 참조할 수 있지만 제공된 위의 예를 계속 진행하면 다음 시작 커서를 연결하면 다양한 영향을 미칩니다.
건너뛰려면 처음 N개의 결과를 검색해야 하는 요구사항:
|
endAt |
결과 집합에서 쿼리를 종료할 위치의 잠재 접두사입니다.
요구사항:
|
offset |
첫 번째 결과를 반환하기 전에 건너뛸 문서 수입니다. 이는 요구사항:
|
limit |
반환할 최대 결과 수입니다. 다른 모든 제약 조건 뒤에 적용됩니다. 요구사항:
|
findNearest |
선택사항입니다. 잠재적인 최근접 이웃 검색입니다. 다른 모든 필터 및 순서 뒤에 적용됩니다. 지정된 쿼리 벡터에 가장 가까운 벡터 임베딩을 찾습니다. |
투영
반환할 문서 필드의 프로젝션입니다.
JSON 표현 |
---|
{
"fields": [
{
object ( |
필드 | |
---|---|
fields[] |
반환할 필드입니다. 비어 있으면 모든 필드가 반환됩니다. 문서의 이름만 반환하려면 |
CollectionSelector
컬렉션의 선택(예: messages as m1
)
JSON 표현 |
---|
{ "collectionId": string, "allDescendants": boolean } |
필드 | |
---|---|
collectionId |
컬렉션 ID입니다. 설정하면 이 ID가 있는 컬렉션만 선택됩니다. |
allDescendants |
false인 경우 포함하는 |
필터
필터
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
통합 필드 filter_type . 필터 유형입니다. filter_type 은 다음 중 하나여야 합니다. |
|
compositeFilter |
복합 필터 |
fieldFilter |
문서 필드의 필터 |
unaryFilter |
정확히 1개의 인수를 사용하는 필터입니다. |
CompositeFilter
지정된 연산자를 사용하여 다른 여러 필터를 병합하는 필터입니다.
JSON 표현 |
---|
{ "op": enum ( |
필드 | |
---|---|
op |
여러 필터를 결합하는 연산자입니다. |
filters[] |
결합할 필터의 목록입니다. 요구사항:
|
연산자
복합 필터 연산자.
열거형 | |
---|---|
OPERATOR_UNSPECIFIED |
지정되지 않음. 이 값을 사용해서는 안 됩니다. |
AND |
문서가 결합된 필터를 모두 충족해야 합니다. |
OR |
문서가 결합된 필터 중 하나 이상을 충족해야 합니다. |
필드필터
특정 필드의 필터입니다.
JSON 표현 |
---|
{ "field": { object ( |
필드 | |
---|---|
field |
필터링할 필드입니다. |
op |
필터링할 연산자입니다. |
value |
비교할 값입니다. |
연산자
필드 필터 연산자.
열거형 | |
---|---|
OPERATOR_UNSPECIFIED |
지정되지 않음. 이 값을 사용해서는 안 됩니다. |
LESS_THAN |
지정된 요구사항:
|
LESS_THAN_OR_EQUAL |
지정된 요구사항:
|
GREATER_THAN |
지정된 요구사항:
|
GREATER_THAN_OR_EQUAL |
지정된 요구사항:
|
EQUAL |
지정된 field 는 지정된 value 와 같습니다. |
NOT_EQUAL |
지정된 요구사항:
|
ARRAY_CONTAINS |
지정된 field 는 지정된 value 가 포함된 배열입니다. |
IN |
지정된 요구사항:
|
ARRAY_CONTAINS_ANY |
지정된 요구사항:
|
NOT_IN |
요구사항:
|
단항 필터
단일 피연산자가 있는 필터.
JSON 표현 |
---|
{ "op": enum ( |
필드 | |
---|---|
op |
적용할 단항 연산자입니다. |
통합 필드 operand_type . 필터의 인수입니다. operand_type 은 다음 중 하나여야 합니다. |
|
field |
연산자를 적용할 필드입니다. |
연산자
단항 연산자입니다.
열거형 | |
---|---|
OPERATOR_UNSPECIFIED |
지정되지 않음. 이 값을 사용해서는 안 됩니다. |
IS_NAN |
지정된 field 는 NaN 와 같습니다. |
IS_NULL |
지정된 field 는 NULL 와 같습니다. |
IS_NOT_NAN |
지정된 요구사항:
|
IS_NOT_NULL |
지정된 요구사항:
|
주문
필드의 주문
JSON 표현 |
---|
{ "field": { object ( |
필드 | |
---|---|
field |
정렬 기준이 되는 필드입니다. |
direction |
정렬 기준입니다. 기본값은 |
방향
정렬 방향입니다.
열거형 | |
---|---|
DIRECTION_UNSPECIFIED |
지정되지 않음. |
ASCENDING |
오름차순. |
DESCENDING |
내림차순. |
가장 가까운 곳 찾기
최근접 이웃 검색 구성
JSON 표현 |
---|
{ "vectorField": { object ( |
필드 | |
---|---|
vectorField |
필수 항목입니다. 검색할 색인이 지정된 벡터 필드입니다. 차원이 queryVector와 일치하는 벡터가 포함된 문서만 반환될 수 있습니다. |
queryVector |
필수 항목입니다. 검색 중인 쿼리 벡터입니다. 차원이 2,048개를 넘지 않는 벡터여야 합니다. |
distanceMeasure |
필수 항목입니다. 사용할 거리 측정입니다(필수). |
limit |
필수 항목입니다. 반환할 최근접 이웃 수입니다. 1,000 이하의 양의 정수여야 합니다. |
거리 측정
벡터를 비교할 때 사용할 거리 측정입니다.
열거형 | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
설정하면 안 됩니다. |
EUCLIDEAN |
벡터 사이의 EUCLIDEAN 거리를 측정합니다. 자세한 내용은 유클리드를 참고하세요. |
COSINE |
벡터 사이의 각도를 기준으로 벡터를 비교하므로 벡터 크기를 기반으로 하지 않는 유사성을 측정할 수 있습니다. 수학적으로 동일하며 성능이 더 뛰어난 COSINE 거리 대신 단위 정규화된 벡터가 있는 DOT_PRODUCT를 사용하는 것이 좋습니다. 자세한 내용은 코사인 유사성을 참조하세요. |
DOT_PRODUCT |
코사인과 비슷하지만 벡터 크기의 영향을 받습니다. 자세한 내용은 닷 제품을 참고하세요. |