MCPcopy Create free account
hub / github.com/nlweb-ai/NLWeb / run_query

Method run_query

AskAgent/python/testing/test_queries_and_rss.py:33–119  ·  view source on GitHub ↗

Run a single query and analyze results Returns: Dict containing: - query: the query string - total_results: total number of results - unique_results: number after deduplication - results_by_source: dict of source -> count

(self, query: str, site: str = "all", num_results: int = 50)

Source from the content-addressed store, hash-verified

31 self.retriever = get_vector_db_client()
32
33 async def run_query(self, query: str, site: str = "all", num_results: int = 50) -> dict[str, Any]:
34 """
35 Run a single query and analyze results
36
37 Returns:
38 Dict containing:
39 - query: the query string
40 - total_results: total number of results
41 - unique_results: number after deduplication
42 - results_by_source: dict of source -> count
43 - duplicates: number of duplicate results
44 """
45 print(f"\n{'='*60}")
46 print(f"Query: '{query}' | Site: {site}")
47 print('='*60)
48
49 try:
50 # Run the search
51 results = await self.retriever.search(query, site, num_results)
52
53 # Analyze results
54 total_results = len(results)
55
56 # Track unique URLs and sources
57 unique_urls = set()
58 results_by_source = {}
59 url_to_sources = {}
60
61 for result in results:
62 # Extract URL and source from result
63 # Result format is typically [url, json, name, site]
64 if len(result) >= 4:
65 url = result[0] # URL is first
66 source = result[3] # site/source is fourth
67
68 # Track unique URLs
69 unique_urls.add(url)
70
71 # Track sources
72 if source not in results_by_source:
73 results_by_source[source] = 0
74 results_by_source[source] += 1
75
76 # Track which sources have each URL (for duplicate detection)
77 if url not in url_to_sources:
78 url_to_sources[url] = []
79 url_to_sources[url].append(source)
80
81 # Find duplicates
82 duplicates = {url: sources for url, sources in url_to_sources.items() if len(sources) > 1}
83
84 analysis = {
85 "query": query,
86 "site": site,
87 "total_results": total_results,
88 "unique_results": len(unique_urls),
89 "results_by_source": results_by_source,
90 "duplicate_count": len(duplicates),

Callers 1

run_query_setMethod · 0.95

Calls 1

searchMethod · 0.45

Tested by

no test coverage detected