ActiveDocument is a library that serves to persist entities to/from a Lucene.Net index via a simple attribute based mapping system. It also provides a base class for your classes to extend providing rich functionality out of the box, such as finding by id, by query, finding ranges, etc. It allows a Lucene query to return a strongly typed collection of your entities, providing an abstraction of the Lucene querying and results transformation.

ActiveDocument is inspired by NHibernate/Castle Active Record, built to work with Lucene.net rather than a database.

ActiveDocument aims to server 2 purposes - managing different document types through classes to search separately, such as a document portal separating news documents, legal documents, entertainment documents, etc, managed through subindices, or one large collection but searchable by analyzing type of document which maps to class type, and a very quick way to implement an object store much like a database but without the setup and deployment concerns to rapidly prototype applications.

The library will hopefully evolve logically to establish certain subsystems :

Mapping - To allow for XML or attribute based mapping

Querying - perhaps implementing a unique query language to be internally translated for Lucene, or ideally using something like the LinqToLucene project to allow Linq queries against entities to translate to Lucene queries.

Persistence - layer to handle population of entities and Lucene index(es) internally.

Last edited Jun 12, 2008 at 1:28 AM by jasoncalton, version 3