surrealdb-vector
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSurrealDB Vector Search
SurrealDB 向量搜索
HNSW Index
HNSW 索引
Create a basic HNSW index:
surql
DEFINE INDEX hnsw_idx ON pts FIELDS point HNSW DIMENSION 4;With specific distance function and type:
surql
DEFINE INDEX hnsw_idx ON pts FIELDS point HNSW DIMENSION 4 DIST EUCLIDEAN TYPE F64;Available types: , , , , .
F64F32I64I32I16创建基础HNSW索引:
surql
DEFINE INDEX hnsw_idx ON pts FIELDS point HNSW DIMENSION 4;指定距离函数和类型:
surql
DEFINE INDEX hnsw_idx ON pts FIELDS point HNSW DIMENSION 4 DIST EUCLIDEAN TYPE F64;支持的类型:, , , , .
F64F32I64I32I16Full Table Example
完整表示例
surql
DEFINE TABLE OVERWRITE document SCHEMALESS;
DEFINE FIELD OVERWRITE embedding ON document TYPE array<float>;
DEFINE INDEX OVERWRITE hnsw_idx_document ON document
FIELDS embedding
HNSW DIMENSION 384
DIST COSINE
TYPE F32
EFC 150 M 12 M0 24;surql
DEFINE TABLE OVERWRITE document SCHEMALESS;
DEFINE FIELD OVERWRITE embedding ON document TYPE array<float>;
DEFINE INDEX OVERWRITE hnsw_idx_document ON document
FIELDS embedding
HNSW DIMENSION 384
DIST COSINE
TYPE F32
EFC 150 M 12 M0 24;HNSW Parameters
HNSW 参数
| Parameter | Description |
|---|---|
| DIMENSION | Vector dimensionality (must match your embeddings) |
| DIST | Distance function: |
| TYPE | Numeric type: |
| EFC | Construction search effort (higher = better index) |
| M | Max connections per node |
| M0 | Max connections at layer 0 |
| 参数 | 描述 |
|---|---|
| DIMENSION | 向量维度(必须与你的embeddings匹配) |
| DIST | 距离函数: |
| TYPE | 数值类型: |
| EFC | 构建索引时的搜索力度(值越高,索引质量越好) |
| M | 每个节点的最大连接数 |
| M0 | 第0层的最大连接数 |
Querying Vectors
向量查询
The operator performs KNN search. is the number of results,
is the search effort (higher = more accurate, slower).
<|K, EF|>KEFRecommended effort values:
- — default, good accuracy
40 - — fast but may miss some results
17
<|K, EF|>KEF推荐的力度值:
- — 默认值,准确性良好
40 - — 速度快,但可能遗漏部分结果
17
Basic KNN Query
基础KNN查询
surql
SELECT
*,
vector::distance::knn() AS dist
FROM document
WHERE embedding <|10, 40|> $vector;vector::distance::knn()surql
SELECT
*,
vector::distance::knn() AS dist
FROM document
WHERE embedding <|10, 40|> $vector;vector::distance::knn()Scored Results with Threshold
带阈值的评分结果
surql
SELECT *, score
FROM (
SELECT *, (1 - vector::distance::knn()) AS score
FROM document
WHERE embedding <|20, 40|> $vector
)
WHERE score >= $threshold
ORDER BY score DESC;surql
SELECT *, score
FROM (
SELECT *, (1 - vector::distance::knn()) AS score
FROM document
WHERE embedding <|20, 40|> $vector
)
WHERE score >= $threshold
ORDER BY score DESC;