You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Transformers+Milvus(1.1.1)的语义搜索项目:如何Mock数据库或无服务器测试?

无需搭建Milvus服务器的测试方案(针对1.1.1版本)

当然可以,针对Milvus 1.1.1,你有几种无需搭建完整服务器或Mock的测试方案,根据你的测试场景选择:

  • 内存模式快速测试
    Milvus 1.1.1支持内存运行模式,不需要启动独立的Milvus服务器,数据仅存于内存,进程结束后自动清除,适合快速验证代码逻辑或单元测试。通过pymilvus连接时开启共享内存即可:

    from pymilvus import connections, CollectionSchema, FieldSchema, Collection, DataType
    
    # 连接内存模式Milvus
    connections.connect(alias='default', host='localhost', port='19530', use_shared_memory=True)
    
    # 定义集合Schema
    id_field = FieldSchema(name="id", dtype=DataType.INT64, is_primary=True)
    embedding_field = FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=768)
    schema = CollectionSchema(fields=[id_field, embedding_field], description="语义搜索测试集合")
    
    # 创建并使用集合
    test_collection = Collection(name="semantic_search_test", schema=schema)
    
  • Mock Milvus客户端
    如果只需要测试业务逻辑(比如Transformers生成向量后的搜索流程),不需要真正执行向量运算,可以用Python的unittest.mock来模拟pymilvus的核心方法,返回预设结果:

    from unittest.mock import patch, Mock
    from your_module import semantic_search_function  # 导入你的业务函数
    
    def test_search_logic():
        # 模拟Milvus集合的search方法
        with patch('pymilvus.Collection') as mock_col:
            mock_search_result = Mock(return_value=[[(1, 0.92), (3, 0.85)]])
            mock_col.return_value.search = mock_search_result
    
            # 调用业务函数,传入测试向量
            results = semantic_search_function([0.1]*768)
    
            # 验证结果符合预期
            assert len(results) == 2
            assert results[0]['id'] == 1
            assert results[0]['score'] == 0.92
    
  • 轻量Docker容器测试
    若需要接近生产环境的测试场景,可启动单节点Milvus 1.1.1的Docker容器,无需复杂配置,测试完成后直接销毁即可:

    # 启动Milvus 1.1.1单节点容器
    docker run -d --name milvus-test-1.1.1 -p 19530:19530 milvusdb/milvus:1.1.1-cpu-d050721-5e559c
    
    # 测试完成后停止并删除容器
    docker stop milvus-test-1.1.1 && docker rm milvus-test-1.1.1
    

内容的提问来源于stack exchange,提问作者alhassanha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:05:22