search
Hybrid semantic + keyword search across scientific papers. Combines vector similarity with BM25 full-text matching for both conceptual queries and exact terms (paper IDs, author names). Supports filtering by content type (methodology / results / theoretical / etc.), entities, categories, and date range. Default mode for general queries — use 'search_keyword' for exact-term lookups or 'search_semantic' for pure paraphrase queries.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return | |
| query | Yes | Search query text | |
| dateTo | No | Filter: published on or before (ISO date) | |
| detail | No | 'minimal' = id+title+snippet+score. 'standard' = adds metadata + chunkContext. 'full' = adds entities/selfContained/scores/licenses map | standard |
| facets | No | If true, return facets block: count breakdown by contentType + top entities mentioned | |
| run_id | No | Optional. The active methodist run_id (as returned by the methodist diagnose / get_current_dose door). Pass it whenever you call this tool while working inside a run, so the call is attributed to that run for the §8 usage crosscheck — attribution is run-anchored, so it stays correct even if your access token refreshes mid-run. Must be YOUR run: a run_id owned by a different principal, or a non-existent run_id, is rejected. | |
| dateFrom | No | Filter: published on or after (ISO date) | |
| entities | No | Soft filter by entity (method names like "BERT", datasets like "SQuAD", metrics like "BLEU"), case-insensitive. Matching chunks rank first; chunks with no entities recorded (legacy gap) fall to the bottom rather than being dropped; chunks with non-matching entities are excluded. | |
| strategy | No | 'fast' (~1s) for quick lookups; 'rerank' (~10s) applies cross-encoder for higher relevance on complex queries | fast |
| categories | No | Filter by arXiv categories (e.g. cs.AI, cs.LG) | |
| contentType | No | Filter chunks by type. Use [methodology] to find HOW researchers approach a problem; [results] for OUTCOMES; [survey, background] for context | |
| diversifyBy | No | 'document' (default): max N chunks per paper. 'keyConcept': diversify by main idea (good for landscape view). 'contentType': mix methodology/results/etc. | document |
| vectorModel | No | 'gemini' for general semantic queries (default); 'specter2' for scientific paper similarity. ★ COVERAGE DIFFERS: the specter2 space does not cover the whole corpus — 77,782 chunks carry no vector in it and are therefore INVISIBLE to a specter2 search, not merely ranked lower. An empty result there means 'not indexed in this space', which is indistinguishable from 'nothing similar exists'. Use gemini when completeness matters; use specter2 to re-rank or corroborate. | gemini |
| maxPerDocument | No | Max chunks per single key (only when diversifyBy=document) |