Vectors

벡터 DB와 검색을 API 하나로. 운영은 Schift가.

미리보기도입 문의

올리면 바로 검색. 운영은 Schift가 맡습니다.

  • npm install @schift-io/sdk
  • pip install schift
filter: year >= 2024topK: 5
  1. sku-12
  2. sku-7
  3. sku-31
  4. sku-4
  5. sku-19

벡터 검색에 붙는 일은 Schift가 맡습니다

  1. 직접 운영하면: 클러스터 노드, 메모리, 샤드 설계

    Schift로: 컬렉션 경로 PUT 한 번

  2. 직접 운영하면: 행이 늘 때마다 ANN 인덱스 재구축과 튜닝

    Schift로: IVF-PQ 인덱스 자동 관리

  3. 직접 운영하면: 임베딩 큐, 배치, 재시도, 토큰 집계

    Schift로: ?embed=body 한 줄

  4. 직접 운영하면: 모델 교체 뒤 섞인 차원 찾아 정리

    Schift로: 쓰기마다 차원과 모델 검사

  5. 직접 운영하면: 삭제 표시 압축과 옛 버전 청소

    Schift로: 압축과 정리를 매일 자동으로

  6. 직접 운영하면: 최대 부하에 맞춘 인스턴스 예약

    Schift로: 저장 GB-월과 검색 횟수로 사용한 만큼

두 가지로 넣고, 한 번에 찾습니다

A

직접 만든 벡터를 레코드와 함께

어떤 모델이든, 공간 여러 개를 한 요청으로.

import { VectorClient } from "@schift-io/sdk";

const vectors = new VectorClient({
  apiKey: process.env.SCHIFT_API_KEY!,
  dataUrl: "https://gw.schift.io",
});
const where = "custom/catalog/items";
const model = "google/gemini-embedding-2"; // any model; every write asserts it

await vectors.declare(where, {
  embedding: "external",
  vectors: { text: { dimension: 2048, model } },
  metadata: { sku: "string", year: "int64", tags: "string_list" },
});

await vectors.upsert(
  where,
  [{ id: "sku-1", text: "linen shirt, warm beige",
     metadata: { sku: "S1", year: 2025, tags: ["summer"] },
     vectors: { text: embedding } }], // Float32Array goes as base64 f32
  { models: { text: model } },
);

const { hits } = await vectors.search(where, {
  vector: "text",
  queryVector: queryEmbedding,
  query: "linen shirt", // hybrid: cosine + BM25
  filter: { year: { gte: 2024 }, tags: { contains: "summer" } },
  topK: 10,
}); // [{ id, score, scores: { text, keyword }, text, metadata, updatedAt }]

B

텍스트만 보내면 서버가 임베딩

?embed= 로 쓰고 near= 로 찾습니다.

import { DataClient } from "@schift-io/sdk";

const data = new DataClient({
  apiKey: process.env.SCHIFT_API_KEY!,
  dataUrl: "https://gw.schift.io",
});

await data.declareSchema("custom/support/tickets", [
  { name: "ticket_id", type: "string", nullable: false },
  { name: "body", type: "string", nullable: false },
  { name: "plan", type: "string", nullable: true },
]);

// 202 once the rows are on disk; the body column is embedded right after
await data.put("custom/support/tickets", [
  { ticket_id: "t-81", body: "Refund still pending after 10 days", plan: "pro" },
  { ticket_id: "t-82", body: "Invoice shows the wrong company name", plan: "free" },
], { embed: "body" });

const { rows } = await data.search("custom/support/tickets", {
  near: "late refund",   // the query text is embedded with the same model
  k: 5,
  where: { plan: "pro" },
}); // rows[i]._score = cosine similarity

검색에 들어 있는 것

필터 후 top-k

조건에 맞는 행 안에서 가까운 k개.

"filter": {"year": {"gte": 2024}}

하이브리드 검색

코사인과 BM25를 비율대로 합칩니다.

"query": "linen shirt", "keywordWeight": 0.3

다중 공간 가중 합

text와 image를 가중치로 한 번에.

"weights": {"text": 0.6, "image": 0.4}

정확한 재정렬

저장된 벡터로 점수를 다시 계산합니다.

scores: {text, image, keyword}

레코드 단위 수정

upsert, 메타데이터 PATCH, 필터 삭제.

PATCH /v1/vectors/{where}

처리 기록

모든 검색과 쓰기가 _ops/* 에 남습니다.

GET /v1/data/_ops/access

170,000 레코드에서 49.6 ms

2,048차원 벡터 2개, 메타데이터 15개.

텍스트 공간 검색 p50 / p95
49.6 / 59.3 ms
필터 검색 p50
80.9 ms
하이브리드 (벡터 + BM25) p50
124.5 ms
이웃 재현율 (text / filtered / fused)
0.979 / 1.0 / 1.0

2026-09-24 UTC, 노트북 1대와 로컬 MinIO, 합성 벡터.

얼마인가, 무료는 어디까지

  • 저장

    매월 무료1GB무료 보관
    사용한 만큼$0.30GB-월당
    월 약정1TB, $210/월$0.21/GB-월
  • 검색

    매월 무료10만 회매월 무료
    사용한 만큼$16100만 회당
    월 약정1억 회, $1,000/월$10/M
  • 임베딩 토큰

    매월 무료첫 토큰부터사용한 만큼 과금
    사용한 만큼$0.025100만 토큰당
전체 가격표 (Vectors)

다른 관리형 벡터 DB와 비교

Schift VectorsPineconeturbopufferQdrant Cloud
무료 제공량1GB 무료 보관, 10만 회 매월 무료Starter 2 GBLaunch $16/월부터클러스터 1개
월 최소 사용액사용한 만큼Standard $50/월$16/월사용량 과금
용량 계획서버리스서버리스서버리스클러스터 크기 선택
저장 단가$0.30 GB-월당$0.33/GB/월계산기로 산출디스크 시간 단위
검색 과금 단위검색 1회읽기 유닛(RU)조회 데이터량클러스터 자원 시간
쓰기 검사차원 + 임베딩 모델인덱스 차원벡터 컬럼 차원컬렉션 벡터 크기
처리 기록모든 조직, _ops/*Audit Logs: EnterpriseAudit Logs: Scale미기재
출처 (확인 2026-09-27)

자주 묻는 질문

어떤 임베딩 모델을 쓸 수 있나요?

직접 만든 벡터는 어떤 모델이든 됩니다.

모델이나 차원을 바꾸려면요?

새 where 에 컬렉션을 하나 더 만듭니다.

한 번에 얼마나 올릴 수 있나요?

한 번에 10,000건, 128 MiB까지.

인프라는 Schift가. 당신은 고객에게.

키 하나로 바로 검색합니다.