Skip to content

Commit a0b4065

Browse files
committed
properties: bubble up HNSW distance types #30
no manhattan in c model without hamming etc..
1 parent 10736d4 commit a0b4065

3 files changed

Lines changed: 23 additions & 1 deletion

File tree

objectbox/c.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,3 +877,6 @@ def c_array_pointer(py_list: Union[List[Any], np.ndarray], c_type):
877877

878878
OBXHnswDistanceType_UNKNOWN = 0
879879
OBXHnswDistanceType_EUCLIDEAN = 1
880+
OBXHnswDistanceType_COSINE = 2
881+
OBXHnswDistanceType_DOT_PRODUCT = 3
882+
OBXHnswDistanceType_DOT_PRODUCT_NON_NORMALIZED = 10

objectbox/model/properties.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,11 @@ class HnswFlags(IntEnum):
9595

9696

9797
class HnswDistanceType(IntEnum):
98-
UNKNOWN = OBXHnswDistanceType_UNKNOWN,
98+
UNKNOWN = OBXHnswDistanceType_UNKNOWN
9999
EUCLIDEAN = OBXHnswDistanceType_EUCLIDEAN
100+
COSINE = OBXHnswDistanceType_COSINE
101+
DOT_PRODUCT = OBXHnswDistanceType_DOT_PRODUCT
102+
DOT_PRODUCT_NON_NORMALIZED = OBXHnswDistanceType_DOT_PRODUCT_NON_NORMALIZED
100103

101104

102105
@dataclass

tests/model.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,19 @@ class VectorEntity:
6262
id=3, uid=40001,
6363
dimensions=2, distance_type=HnswDistanceType.EUCLIDEAN)
6464
)
65+
vector_cosine = Property(np.ndarray, type=PropertyType.floatVector, id=4, uid=4004,
66+
index=HnswIndex(
67+
id=4, uid=40002,
68+
dimensions=2, distance_type=HnswDistanceType.COSINE)
69+
)
70+
vector_dot_product = Property(np.ndarray, type=PropertyType.floatVector, id=5, uid=4005,
71+
index=HnswIndex(
72+
id=5, uid=40003,
73+
dimensions=2, distance_type=HnswDistanceType.DOT_PRODUCT)
74+
)
75+
#vector_dot_product_non_normalized = Property(np.ndarray, type=PropertyType.floatVector, id=6, uid=4006,
76+
# index=HnswIndex(
77+
# id=6, uid=40004,
78+
# dimensions=2, distance_type=HnswDistanceType.DOT_PRODUCT_NON_NORMALIZED)
79+
# )
80+

0 commit comments

Comments
 (0)