immich/server/src/schema/tables/face-search.table.ts

23 lines
654 B
TypeScript
Raw Normal View History

2025-03-29 09:26:24 -04:00
import { AssetFaceTable } from 'src/schema/tables/asset-face.table';
import { Column, ForeignKeyColumn, Index, Table } from 'src/sql-tools';
2025-03-28 10:40:09 -04:00
@Table({ name: 'face_search', primaryConstraintName: 'face_search_pkey' })
@Index({
name: 'face_index',
using: 'hnsw',
expression: `embedding vector_cosine_ops`,
with: 'ef_construction = 300, m = 16',
synchronize: false,
})
2025-03-28 10:40:09 -04:00
export class FaceSearchTable {
@ForeignKeyColumn(() => AssetFaceTable, {
onDelete: 'CASCADE',
primary: true,
constraintName: 'face_search_faceId_fkey',
})
faceId!: string;
@Column({ type: 'vector', length: 512, synchronize: false })
2025-03-28 10:40:09 -04:00
embedding!: string;
}