The open source project Strus provides a collection libraries and command line tools written in C++ for building a competitive, scalable full-text search engine.
The Strus search engine can be build using any key value store database that provides an upper bound seek function for the stored key/value pairs. Currently there exists an implementation based on the LevelDB library.

Demo system

There is a demo system online for Strus:
A search on the complete wikipedia collection (English) with a description how the system can be installed and the index built.


A tutorial for building a simple search engine with PHP is available here.
Another tutorial for building a non trivial search engine also covering the insert case with Python and the Torrnado web framework is available here.
An introduction that shows how to write dynamically loadable extensions of the Strus core in C++ can be found here.
An article that shows how scalable search engines can be built with Strus (distributing the search index) can be found here.


There is a short installation guide on how to install the strus packages or fetch the Strus sources from github and build them on your own or alternatively to run Strus from docker images.


The documentation is work in progress. What is available can be found here.


Why to build yet another search engine ? Here I tell about my motivation and the story of Strus. I also try to explain, what distinguishes Strus from other search engine software.


Aug 25th, 2016

Added a more or less usable DYM (did you mean) support to the demo Wikipedia search. More or less means that the data basis for the proposals is poor (just a dump of 5M titles and some subtitles processed with strus utility programs and some perl). Furthermore the querying for candidates does not handle relations between items. There is no documentation available yet, but if you wish you can have a look at the Python sources. There is no magic there, just another server with an own index and a query evaluation scheme with some postprocessing in Python.

Jul 10th, 2016

We started a new project StrusPattern for deeper document analysis.

Jul 10th, 2016

The work on the strusWebservice is ongoing. A slide show that helps to figure out where we are heading to in this project can be found here.

Jul 10th, 2016

There is a Travis build available now for strus at travis-ci.org

Jul 10th, 2016

We have implemented an NGRAM normalizer and a tokenizer and normalizer for terms defined by regular expressions on text. You find all functions implemented till now here.

May 10th, 2016

A document segmenter for JSON (based on the cJSON library) has been implemented for the Strus analyzer project. Selection expressions are also formulated in the abbreviated syntax of XPath as for XML.

May 4th, 2016

A new article has been published, that shows how to create call traces for Strus for debugging, statistical analysis and deeper understandig of the software.

Apr 4th, 2016

Strus can be build on OS X. Unfortunately we cannot provide packages yet. But at least you can build the software on your own.

Mar 31st, 2016

The project is now sponsored by Eurospider. The feedback from sophisticated retrieval projects and the development of new components as the Strus webservice project will bring the Strus forward.

Mar 22nd, 2016

Providing some query performance numbers for the Wikipedia demo system running on an Intel NUC.

Mar 21st, 2016

License of Strus changed from GPLv3 to MPLv2 (Mozilla Public License, Version 2.0). We were looking for a license, that on one hand protects the work done for Strus and on the other hand allows users of Strus to attribute their own work in their way, even as closed source. We think that the Mozilla Public License, Version 2.0 meets these requirements best. Fortunately Strus did never include nor link against any pervasively licenced code, so this change of the software license is possible with the agreement of all contributors.

Mar 14th, 2016

The Wikipedia demo search engine is now hosted on an Intel NUC. Read more....

Feb 9th, 2016

New article published on codeproject about writing Strus extension modules in C++.

Dec 25th, 2015

Article that shows how scalable search engines can be built with Strus.

Nov 28th, 2015

A tutorial for building a search engine with Strus based on Python and the Tornado web framework has been published on codeproject.

Nov 16th, 2015

The NBLNK weighting scheme for the Wikipedia demo is now online. This weighting scheme does not match documents against the query, but ranks the links in documents by weighting the sentences the links appear in against the query. It is a good example for the information extraction capabilities of Strus.

Oct 29th, 2015

Packages of the latest build are available now.

Oct 21th, 2015

Python bindings are available now.

Aug 17th, 2015

Language bindings for Java are now available.

Jul 1st, 2015

A docker image and a tutorial is available for Strus.

June 15th, 2015

Started advertising Strus to get some feedback and maybe even some support.

Mai 27th, 2015

The demo project of a search engine for the wikipedia collection (english) is online.

April 2nd, 2015

The demo project of a search engine for the wikipedia collection (english) is close to be finished.

© 2015 Patrick Frey
Original template design by Andreas Viklund / Best hosted at www.svenskadomaner.se