REPOGEO REPORT · LITE
castorini/pyserini
Default branch master · commit 6f48030c · scanned 6/26/2026, 6:21:50 PM
GitHub: 2,096 stars · 537 forks
Score trend below includes all ready runs (older left, newer right; scroll horizontally if needed). The table is collapsed by default—expand for newest-first rows, 10 per page.
3 ready scans. Expand the table below for newest-first rows (10 per page, paginated).
Action plan is what to do next — copy-pasteable changes prioritized by impact. Category visibility is the real GEO test: when a user asks an AI a brand-free question that should surface castorini/pyserini, does the AI actually recommend you — or your competitors? Objective checks verify the metadata signals AI engines weight first. Self-mention check detects whether AI even knows you exist by name.
Action plan — copy-paste fixes
3 prioritized changes generated by gemini-2.5-flash. Mark items done after you ship the fix.
- highreadme#1Emphasize 'first-stage retrieval in multi-stage ranking' in README intro
Why:
CURRENTPyserini is a Python toolkit for reproducible information retrieval research with sparse and dense representations. Retrieval using sparse representations is provided via integration with our group's Anserini IR toolkit, which is built on Lucene. Retrieval using dense representations is provided via integration with Facebook's Faiss library. Pyserini is primarily designed to provide effective, reproducible, and easy-to-use first-stage retrieval in a multi-stage ranking architecture.
COPY-PASTE FIXPyserini is a Python toolkit primarily designed for effective, reproducible, and easy-to-use **first-stage retrieval in multi-stage ranking architectures**. It supports both sparse and dense representations, integrating with our Anserini IR toolkit (built on Lucene) for sparse retrieval and Facebook's Faiss library for dense retrieval. Our toolkit is self-contained as a standard Python package and comes with queries, relevance judgments, prebuilt indexes, and evaluation scripts for many commonly used IR test collections, making it ideal for reproducible information retrieval research.
- hightopics#2Add specific topics for multi-stage ranking and first-stage retrieval
Why:
CURRENTinformation-retrieval
COPY-PASTE FIXinformation-retrieval, multi-stage-ranking, first-stage-retrieval, sparse-retrieval, dense-retrieval, anserini, lucene, faiss, ms-marco
- mediumcomparison#3Add a 'Comparison with Alternatives' section
Why:
COPY-PASTE FIX## Comparison with Alternatives Pyserini is distinct from general-purpose vector search libraries like Faiss, Annoy, or Hnswlib, and from full-text search engines like Elasticsearch or Weaviate. While it leverages components like Faiss for dense retrieval, Pyserini's core focus is on providing a **reproducible, Pythonic toolkit for information retrieval research**, specifically designed for **first-stage retrieval within multi-stage ranking architectures**. It offers pre-built indexes and evaluation scripts for standard IR test collections, making it ideal for academic and experimental settings where direct comparison and reproducibility are paramount, rather than solely serving as a production-ready vector database or search engine.
Category GEO backends resolved for this scan: google/gemini-2.5-flash, deepseek/deepseek-v4-flash
Category visibility — the real GEO test
Brand-free queries asked to google/gemini-2.5-flash. Did AI recommend you, or someone else?
Same questions for every model — switch tabs to compare answers and rankings.
- IR-Datasets · recommended 1×
- OpenNIR · recommended 1×
- PyGaggle · recommended 1×
- Tevatron · recommended 1×
- Anserini · recommended 1×
- CATEGORY QUERYHow to implement reproducible information retrieval experiments using both sparse and dense models?you: #2AI recommended (in order):
- IR-Datasets
- Pyserini ← you
- OpenNIR
- PyGaggle
- Tevatron
- Anserini
- Haystack
- Elasticsearch
- OpenSearch
- Hugging Face Transformers
- MLflow
- DVC
Show full AI answer
- CATEGORY QUERYWhat Python library helps with first-stage retrieval in a multi-stage ranking system?you: not recommendedAI recommended (in order):
- Faiss (facebookresearch/faiss)
- Annoy (spotify/annoy)
- Hnswlib (nmslib/hnswlib)
- Elasticsearch (elastic/elasticsearch-py)
- Weaviate (weaviate/weaviate)
- Milvus (milvus-io/milvus)
- Scikit-learn (scikit-learn/scikit-learn)
AI recommended 7 alternatives but never named castorini/pyserini. This is the gap to close.
Show full AI answer
Objective checks
Rule-based audits of metadata signals AI engines weight most.
- Metadata completenesspass
- README presencepass
Self-mention check
Does AI even know your repo exists when asked about it directly?
- Compared to common alternatives in this category, what is the core differentiator of castorini/pyserini?passAI named castorini/pyserini explicitly
AI answers can be confidently wrong. Read for accuracy: does it match your actual tech stack, audience, and differentiator?
- If a team adopts castorini/pyserini in production, what risks or prerequisites should they evaluate first?passAI named castorini/pyserini explicitly
AI answers can be confidently wrong. Read for accuracy: does it match your actual tech stack, audience, and differentiator?
- In one sentence, what problem does the repo castorini/pyserini solve, and who is the primary audience?passAI named castorini/pyserini explicitly
AI answers can be confidently wrong. Read for accuracy: does it match your actual tech stack, audience, and differentiator?
Embed your GEO score
Drop this badge into the README of castorini/pyserini. It auto-updates whenever the report is rescanned and links back to the latest report — easy public proof that you care about AI discoverability.
[](https://repogeo.com/en/r/castorini/pyserini)<a href="https://repogeo.com/en/r/castorini/pyserini"><img src="https://repogeo.com/badge/castorini/pyserini.svg" alt="RepoGEO" /></a>Subscribe to Pro for deep diagnoses
castorini/pyserini — Lite scans stay free; this card itemizes Pro deep limits vs Lite.
- Deep reports10 / month
- Brand-free category queries5 vs 2 in Lite
- Prioritized action items8 vs 3 in Lite