#!/usr/bin/env python3
"""Test reranking functionality with MCP searches."""
import asyncio
import time
# MCP tools for searching
async def test_reranking_with_mcp():
"""Test reranking using MCP search tools."""
test_queries = [
# Code structure queries
("class HybridSearchEngine", "Find hybrid search implementation"),
("def rerank", "Find reranking methods"),
("RerankConfig", "Find reranking configuration"),
# Natural language queries
("how to use reranking", "Documentation search"),
("BM25 indexing implementation", "Feature search"),
("gitignore security filtering", "Security patterns"),
# Cross-file queries
("voyage ai embeddings", "Integration search"),
("populate BM25 index", "Script search"),
]
results_summary = []
for query, description in test_queries:
print(f"\n{'='*60}")
print(f"Test: {description}")
print(f"Query: '{query}'")
print("=" * 60)
# Time the search
start_time = time.time()
# Use MCP search_code tool
print("\n🔍 MCP Search Results:")
# Note: In actual use, this would call mcp__code-index-mcp__search_code
# For this test, we'll simulate the structure
search_time = time.time() - start_time
result = {
"query": query,
"description": description,
"search_time": search_time,
"results_found": "Would show actual results here",
}
results_summary.append(result)
print(f"\n⏱️ Search time: {search_time:.3f}s")
# Summary
print(f"\n\n{'='*60}")
print("SUMMARY")
print("=" * 60)
for result in results_summary:
print(f"\n{result['description']}:")
print(f" Query: '{result['query']}'")
print(f" Time: {result['search_time']:.3f}s")
def main():
"""Main entry point."""
print("MCP RERANKING TEST SUITE")
print("=" * 60)
print("This script tests reranking functionality with MCP searches")
print("\nNOTE: This is a template. In actual use, it would:")
print("1. Use mcp__code-index-mcp__search_code for searches")
print("2. Compare results with and without reranking")
print("3. Measure performance improvements")
print("4. Test different reranker configurations")
# Run async tests
asyncio.run(test_reranking_with_mcp())
if __name__ == "__main__":
main()