Skip to main content

Continuous Testing PyPI version Documentation Status

PyTerrier

PyTerrier - v1.1

🔍 Retrieve. 🧠 Rerank. 💬 Answer. ⚙️ Experiment.

Overview

Build (sparse|learned sparse|dense) indexing and retrieval pipelines for search and RAG use-cases, and conduct experiments on standard datasets.

For example, build a re-ranking pipeline combining a Terrier BM25 retriever and the MonoT5 neural reranker (each of these are PyTerrier Transformer classes):

import pyterrier as pt
import pyterrier_t5
bm25 = pt.terrier.TerrierIndex.from_hf("pyterrier/vaswani.terrier").bm25() % 100
monot5 = bm25 >> pt.get.get_text(pt.get_dataset('irds:vaswani')) >> pyterrier_t5.MonoT5ReRanker()
monot5.search("What are chemical reactions?")

In notebook environments, PyTerrier transformers and pipelines can be visualised.

Schematic of BM25 >> MonoT5ReRanker

You can easily build pipeline for query expansion, learning-to-rank, dense retrieval and even RAG.

Once you have working pipelines, you can formulate an experiment to compare their effectiveness using the pt.Experiment function:

from pyterrier.measures import *
pt.Experiment(
  [bm25, monot5]
  pt.get_dataset('vaswani').get_topics(),
  pt.get_dataset('vaswani').get_qrels(),
  [nDCG@10, AP@100]
)

You can easily perform retrieval experiments using many standard datasets, including all from the ir_datasets package. E.g., use pt.datasets.get_dataset("irds:medline/2004/trec-genomics-2004") to get the TREC Genomics 2004 dataset. A full catalogue of ir_datasets is available here.

Installation

The easiest way to get started with PyTerrier is to use one of our Colab notebooks - look for the Open In Colab badges below.

Linux or Google Colab or Windows or macOS

  1. pip install 'pyterrier[all]'
  2. You may need to set JAVA_HOME environment variable if Pyjnius cannot find your Java installation.

PyTerrier Extensions

PyTerrier has additional plugins for everything from dense retrieval to RAG:

  • Pyterrier_DR: [Github] - single-representation dense retrieval
  • Pyterrier_RAG: [Github] - retrieval augmented generation and LLM access
  • PyTerrier_ColBERT: [Github] - mulitple-representation dense retrieval and/or neural reranking
  • PyTerrier_PISA: [Github] - fast in-memory indexing and retrieval using PISA
  • PyTerrier_T5: [Github] - neural reranking: monoT5, duoT5
  • PyTerrier_GenRank [Github] - generative listwise reranking: RankVicuna, RankZephyr
  • PyTerrier_doc2query: [Github] - neural augmented indexing
  • PyTerrier_SPLADE: [Github] - neural augmented indexing

You can see examples of how to use these, including notebooks that run on Google Colab, in the contents of our Search Solutions 2022 tutorial.

Open Source Licence

PyTerrier is subject to the terms detailed in the Mozilla Public License Version 2.0. The Mozilla Public License can be found in the file LICENSE.txt. By using this software, you have agreed to the licence.

Citation Licence

The source and binary forms of PyTerrier are subject to the following citation license:

By downloading and using PyTerrier, you agree to cite at the undernoted paper describing PyTerrier in any kind of material you produce where PyTerrier was used to conduct search or experimentation, whether be it a research paper, dissertation, article, poster, presentation, or documentation. By using this software, you have agreed to the citation licence.

Declarative Experimentation in Information Retrieval using PyTerrier. Craig Macdonald and Nicola Tonellotto. In Proceedings of ICTIR 2020.

@inproceedings{pyterrier2020ictir,
    author = {Craig Macdonald and Nicola Tonellotto},
    title = {Declarative Experimentation in Information Retrieval using PyTerrier},
    booktitle = {Proceedings of ICTIR 2020},
    year = {2020}
}

Credits

  • Craig Macdonald, University of Glasgow
  • Sean MacAvaney, University of Glasgow
  • Nicola Tonellotto, University of Pisa
  • Alex Tsolov, University of Glasgow
  • Irene Anu, University of Glasgow
  • Arthur Câmara, TU Delft
  • Alberto Ueda, Federal University of Minas Gerais
  • Sean MacAvaney, University of Glasgow
  • Chentao Xu, University of Glasgow
  • Sarawoot Kongyoung, University of Glasgow
  • Zhan Su, Copenhagen University
  • Marcus Schutte, TU Delft
  • Lukas Zeit-Altpeter, Friedrich Schiller University Jena

Metadata

Release files for pyterrier 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyterrier 1.1.2
File Size Uploaded Provenance
pyterrier-1.1.2.tar.gz 246.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pyterrier 1.1.2
File Interpreter ABI Platform
pyterrier-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 469.3 kB

Release files / pyterrier-1.1.2.tar.gz

Download URL pyterrier-1.1.2.tar.gz
Size 246.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f50bc03063e5ac408b00a6d1f88803732d02dbc7464ccf956b747b79ca99179f
BLAKE2b-256 checksum
How to use checksums
e504d80292de6a628e54b8d60d98826ebeb4c5b15e7818e212bb1a8f388259f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

Release files / pyterrier-1.1.2-py3-none-any.whl

Download URL pyterrier-1.1.2-py3-none-any.whl
Size 223.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f247502cda6a4592d2baf278b46ac91fce79b324b8e18f5067e6c1ed03b97be2
BLAKE2b-256 checksum
How to use checksums
ef0640a86e41616d64af600fcc7d6eba4e6d3f3fafe7e9d32c9bf307caebcc70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

Security for pyterrier 1.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pyterrier-1.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page