Lucene.Net Index Discovery and Querying
Lumen is a wrapper around the Lucene.Net API. It provides a schema for describing properties grouped as a piece of content stored in a Lucene Index, and the mechanisms for easy retrieval (and, of course, searching) of that content, making it simpler to use a Lucene index as a form of data peristence. Lumen also provides a mechanism for managing a number of different Lucene indexes, switching to updated versions of each index as and when they are provided, and managing the lifecycle of the IndexReader and IndexSearcher objects which can be configurably tied to either an AppDomain or the HttpContext.Current object provided by ASP.Net.
It is designed with high performance of data retrieval and stable switching to updated indexes in mind.
Features
Index Management
Indexes are configured in a .Net configuration section as an IO path (local or network). This IO location either points to a direct index location, or an XML file which will describe the Index location. If an XML location is used, Lumen will re-read this location at appropriate moments requiring a new IndexReader or IndexSearcher, such as for a new HttpContext.
Index Querying
Lumen wraps the inputs and outputs of Lucene.Net, and provides methods to perform additional index lookup functions not provided out of the box by Lucene.net.
The Query object allows for building queries against Lucene indexes, and can convert strongly-typed queries (using dates and numbers for example) to Lucene query syntax.
The Searcher class provides the ability to run a Query against an index location, and provide the results in easy to manage objects.