Lucene++ is an up to date C++ port of the popular Java Lucene library, a high-performance, full-featured text search engine.
C++ C Objective-C Python
Clone or download
Pull request Compare This branch is 139 commits behind luceneplusplus:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Welcome to lucene++ version 3.0.3.

Lucene++ is an up to date C++ port of the popular Java Lucene library, a high-performance, full-featured text search engine.


  • liblucene++ library
  • liblucene_contrib library
  • lucene_tester (unit tester)
  • deletefiles (demo)
  • indexfiles (demo)
  • searchfiles (demo)

Useful Resources

Official Java Lucene - useful links and documentation relevant to Lucene and lucene++. Lucene in Action by Otis Gospodnetic and Erik Hatcher.

Build Instructions using CMake

You'll need boost installed somewhere.

On Debian systems, the following packages are required:

  • libboost-date-time-dev
  • libboost-filesystem-dev
  • libboost-regex-dev
  • libboost-thread-dev
  • libboost-iostreams-dev
  • libboost-test-dev

Build Instructions using Waf

Alternatively you can use Waf to drive the build. Waf requires that you have a recent version of Python installed on your system.

To build the library the following commands should be issued:

$ ./waf configure
$ ./waf --static build

Additionally static builds of the following libraries are required for a successful build:

  • boost::date_time
  • boost::filesystem
  • boost::regex
  • boost::thread
  • boost::system
  • boost::iostreams
  • boost::unit_test_framework

The libraries and headers should be made available at a standard prefix (/usr/local for example).

Build Instructions for Windows systems

Open solution lucene++.sln located in the msvc folder into Visual Studio 2008 and build.

Note: "BOOST_ROOT" environment variable must be defined to point to the boost library directory (eg. c:\boost_1_44_0)

You'll need boost installed.

BoostPro has some precompiled windows packages. You'll need the following extras installed:

- boost::system
- boost::thread
- boost::filesystem
- boost::regex
- boost::date_time
- boost::iostreams
- boost::unit_test_framework

Building Performance

Use of ccache will speed up build times a lot. I found it easiest to add the /usr/lib/ccache directory to the beginning of your paths. This works for most common compilers.


To run unit test suite

lucene_tester is built using the Boost Unit Test Framework and is launched by the following command:

$ bin/lucene_tester --show_progress=yes

Other command options can be supplied.


  • Ben van Klinken and contributors to the CLucene project for inspiring this project.
  • Jamie Kirkpatrick for cross-platform and waf build support.
  • nedmalloc Copyright 2005-2006 Niall Douglas
  • md5 Copyright (C) 1999, 2000, 2002 Aladdin Enterprises
  • Unicode character properties (guniprop) Copyright (C) 1999 Tom Tromey, Copyright (C) 2000 Red Hat, Inc.