用途:在 ByteHouse 数据库上实现全文检索与向量检索的混合检索,通过 RRF(Reciprocal Rank Fusion)重排融合两路结果,提升检索精度。
主要能力:文本向量化(基于豆包文本向量化模型,支持任意长度中文文本);双索引构建,包括基于 BM25 的全文倒排索引(关键词精召)与基于 HNSW 的向量索引(语义召回);提供 fulltext_search() 全文检索(返回 BM25 分数)、vector_search() 向量检索(返回余弦相似度分数)、hybrid_search() 混合检索加 RRF 重排;插入文档时经 insert_document()/batch_insert_documents() 自动生成并存储向量;支持单文档向量更新 update_document_embedding() 与批量补全缺失向量的 batch_update_missing_embeddings()。RRF 公式 score = Σ 1/(k+rank),默认 k=60 可调。
使用方式:先安装依赖 pip install clickhouse-connect volcengine-python-sdk[ark] numpy scipy;配置保存在 ~/.bytehouse_config.json,含 BYTEHOUSE_HOST、BYTEHOUSE_PORT(8123)、BYTEHOUSE_USER、BYTEHOUSE_PASSWORD、BYTEHOUSE_SECURE、BYTEHOUSE_VERIFY、BH_ARK_API_KEY、BH_ARK_BASE_URL、BH_EMBEDDING_MODEL,其中主机地址与密码需用户提供,BH_ARK_API_KEY 为可选(仅 embedding 时用);执行 source scripts/export_config.sh 导入环境变量。代码位于 scripts/ 目录(embedding.py、hybrid_search_client.py、examples.py)。典型流程:初始化 ByteHouseHybridSearch,调用 create_hybrid_table 建表,insert_document 写入,hybrid_search(query, top_k) 检索。
适用场景:在 ByteHouse 中需要同时兼顾关键词匹配与语义相似的中文检索应用。
限制:主机地址与密码必须由用户提供;其余配置固定;仅使用指定的向量化模型;切换集群需改配置文件;建表依赖 CnchMergeTree 引擎及 inverted、HNSW_SQ 索引;收费、价格与效果指标资料暂未提供。