A Lucene.Net.Store.Directory implementation which stores index data inside a database.

Version 0.1.0 can be downloaded here

How does it work?

It's all very simple. Two tables are required for normal operations:

create table [Index](
  [DirectoryName] [nvarchar](200) not null,
  [FileName] [nvarchar](200) not null,
  [FileLength] [bigint] not null,
  [FileLastModifiedAt] [bigint] not null,
  [FileContent] [varbinary](max) null,
  primary key clustered ([DirectoryName] asc, [FileName] asc)

create table [Lock](    
  [LockName] [nvarchar](200) not null,
  primary key clustered ([LockName] asc)

Currently, it uses hard-coded SQL statements which are reasonably standard, so they should work with most major databases. One problem, however, is that it uses named parameters, so this might be a problem.