File tree Expand file tree Collapse file tree 3 files changed +47
-1
lines changed
Expand file tree Collapse file tree 3 files changed +47
-1
lines changed Original file line number Diff line number Diff line change 1+ ## 0.2.4 (unreleased)
2+
3+ - Added distance functions for Ent
4+
15## 0.2.3 (2025-01-15)
26
37- Added support for Postgres arrays for pgx
Original file line number Diff line number Diff line change 99 _ "github.com/lib/pq"
1010 "github.com/pgvector/pgvector-go"
1111 "github.com/pgvector/pgvector-go/ent"
12+ "github.com/pgvector/pgvector-go/entvec"
1213)
1314
1415func TestEnt (t * testing.T ) {
@@ -67,7 +68,7 @@ func TestEnt(t *testing.T) {
6768 items , err := client .Item .
6869 Query ().
6970 Order (func (s * sql.Selector ) {
70- s .OrderExpr (sql . ExprP ("embedding <-> $1 " , embedding ))
71+ s .OrderExpr (entvec . L2Distance ("embedding" , embedding ))
7172 }).
7273 Limit (5 ).
7374 All (ctx )
Original file line number Diff line number Diff line change 1+ package entvec
2+
3+ import (
4+ "entgo.io/ent/dialect/sql"
5+ )
6+
7+ func L2Distance (column string , value any ) sql.Querier {
8+ return sql .ExprFunc (func (b * sql.Builder ) {
9+ b .Ident (column ).WriteString (" <-> " ).Arg (value )
10+ })
11+ }
12+
13+ func MaxInnerProduct (column string , value any ) sql.Querier {
14+ return sql .ExprFunc (func (b * sql.Builder ) {
15+ b .Ident (column ).WriteString (" <#> " ).Arg (value )
16+ })
17+ }
18+
19+ func CosineDistance (column string , value any ) sql.Querier {
20+ return sql .ExprFunc (func (b * sql.Builder ) {
21+ b .Ident (column ).WriteString (" <=> " ).Arg (value )
22+ })
23+ }
24+
25+ func L1Distance (column string , value any ) sql.Querier {
26+ return sql .ExprFunc (func (b * sql.Builder ) {
27+ b .Ident (column ).WriteString (" <+> " ).Arg (value )
28+ })
29+ }
30+
31+ func HammingDistance (column string , value any ) sql.Querier {
32+ return sql .ExprFunc (func (b * sql.Builder ) {
33+ b .Ident (column ).WriteString (" <~> " ).Arg (value )
34+ })
35+ }
36+
37+ func JaccardDistance (column string , value any ) sql.Querier {
38+ return sql .ExprFunc (func (b * sql.Builder ) {
39+ b .Ident (column ).WriteString (" <%> " ).Arg (value )
40+ })
41+ }
You can’t perform that action at this time.
0 commit comments