Skip to content

Commit a9f202a

Browse files
committed
feat: add dimension check for HNSW index creation in common.py
1 parent 17a31ef commit a9f202a

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

apps/knowledge/serializers/common.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,11 @@ def create_knowledge_index(knowledge_id=None, document_id=None):
256256
if len(result) == 0:
257257
return
258258
dims = result[0]['dims']
259-
sql = f"""CREATE INDEX "embedding_hnsw_idx_{k_id}" ON embedding USING hnsw ((embedding::vector({dims})) vector_cosine_ops) WHERE knowledge_id = '{k_id}'"""
260-
update_execute(sql, [])
261-
maxkb_logger.info(f'Created index for knowledge ID: {k_id}')
259+
# 超过2000维度不创建索引,pgvector hnsw索引不支持超过2000维度
260+
if dims < 2000:
261+
sql = f"""CREATE INDEX "embedding_hnsw_idx_{k_id}" ON embedding USING hnsw ((embedding::vector({dims})) vector_cosine_ops) WHERE knowledge_id = '{k_id}'"""
262+
update_execute(sql, [])
263+
maxkb_logger.info(f'Created index for knowledge ID: {k_id}')
262264

263265

264266
def drop_knowledge_index(knowledge_id=None, document_id=None):

0 commit comments

Comments
 (0)