Solr搜索集成工具

一个通过模型上下文协议(MCP)访问Apache Solr索引的Python包,结合关键词和向量搜索能力,为AI助手提供强大的搜索查询功能。

  • by allenday
  • Python
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 allenday/solr-mcp

使用说明

Solr MCP

一个Python包,用于通过模型上下文协议(MCP)访问Apache Solr索引。这种集成允许像Claude这样的人工智能助手对您的Solr索引执行强大的搜索查询,结合关键字和向量搜索功能。

特性

  • MCP服务器:实现模型上下文协议以与AI助手集成
  • 混合搜索:将关键字搜索精度与向量搜索语义理解相结合
  • 矢量嵌入:使用Ollama和nomic嵌入文本为文档生成嵌入
  • 统一集合:将文档内容和向量嵌入存储在同一集合中
  • Docker集成:使用Docker和Docker compose轻松设置
  • 优化向量搜索:通过将SQL过滤器下推到向量搜索阶段,有效地处理组合的向量和SQL查询,即使在大型结果集和分页的情况下也能确保最佳性能

建筑

矢量搜索优化

该系统对向量和SQL查询进行了重要的优化。当执行同时包含向量相似性搜索和SQL过滤器的查询时:

  1. SQL过滤器(WHERE子句)被推送到向量搜索阶段
  2. 这确保了向量相似度计算仅在符合最终SQL标准的文档上执行
  3. 通过以下方式显著提高查询性能:
    • 选择性WHERE子句
    • 分页(限制/偏移)
    • 大型结果集

这种优化通过最小化所需的向量相似度计算次数来减少计算开销和网络传输。

快速开始

  1. 克隆此存储库
  2. 使用Docker启动SolrCloud:
    docker-compose up -d
    
  3. 安装依赖项:
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install poetry
    poetry install
    
  4. 处理并索引示例文档:
    python scripts/process_markdown.py data/bitcoin-whitepaper.md --output data/processed/bitcoin_sections.json
    python scripts/create_unified_collection.py unified
    python scripts/unified_index.py data/processed/bitcoin_sections.json --collection unified
    
  5. 运行MCP服务器:
    poetry run python -m solr_mcp.server
    

有关更详细的设置和使用说明,请参阅 QUICKSTART.md 导游。

需求

  • Python 3.10或更高版本
  • Docker和Docker Compose
  • SolrCloud 9.x
  • Ollama(用于嵌入式生成)

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

贡献

欢迎投稿!请看 贡献.md 作为指导方针。