Search

Xapian – information retrieval library

Xapian is an open source probabilistic information retrieval library. It is a full text search engine library for programmers.

The Xapian search engine library is a highly adaptable toolkit which allows developers to easily add advanced indexing and search facilities to their own applications. It implements the probabilistic model of information retrieval, and provides facilities for performing ranked free-text searches, relevance feedback, phrase searching, Boolean searching, stemming, and simultaneous update and searching. It is highly scalable, and is capable of working with collections containing hundreds of millions of documents.

It supports a rich set of Boolean query operators.

Xapian is written in C++, with bindings to allow use from Perl, Python, PHP, Java, Tcl, C#, Ruby, Lua and Erlang.

Key Features

  • Supports database files > 2GB – essential for scaling to large document collections.
  • Transactions: if database update fails in the middle of a transaction, the database is guaranteed to remain in a consistent state.
  • Simultaneous search and update, with new documents being immediately visible.
  • Support for large databases: Xapian has been proven to be scalable to hundreds of millions of documents.
  • Accurate probabilistic ranking: more relevant documents are listed first.
  • Phrase and proximity searching – users can search for words occurring in an exact phrase or within a specified number of words, either in a specified order, or in any order.
  • Relevance feedback, which improves ranking and can expand a query, find related documents, categorise documents etc.
  • Structured Boolean queries, e.g. “race AND condition NOT horse”.
  • Wildcard search, e.g. “wiki*”.
  • Spelling correction.
  • Synonyms.
  • Omega, a packaged solution for adding a search engine to a web site or intranet. Omega can easily be extended and adapted to fit changing requirements.
  • Faceted search – dynamically generate complete lists of category values which feature in matching documents.
  • Supports Unicode (including codepoints beyond the BMP), and stores indexed data in UTF-8
  • Highly portable.

Website: xapian.org
Support: Documentation
Developer: Olly Betts, Hein Ragas, James Aylett, Sam Liddicott, Richard Boulton, Dan Colish
License: GNU General Public License v2.0

Xapian is written in C++. Learn C++ with our recommended free books and free tutorials.


Related Software

Search Engines for Big Data
ElasticSearchFlexible and powerful distributed RESTful search engine and analytics
SolrSearch engine server that uses Lucene
LuceneSearch engine library
QuickwitCloud-native search engine
MeiliSearchEasy to use and deploy search engine
OpenSearchEnterprise-grade search and observability suite
SphinxSearch engine designed with indexing database content in mind
XapianProbabilistic information retrieval library
TypesenseFast, typo-tolerant search engine
Manticore SearchEasy to use fast database for search
RediSearchQuery and indexing engine for Redis
ParadeDBPostgreSQL extension adding search and analytical capabilities to Postgres
VespaAI search platform
MroongaMySQL storage engine based on the Groonga search engine
PGroongaAdds a Groonga-powered index access method
GroongaFulltext search engine and column store

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.