-
Notifications
You must be signed in to change notification settings - Fork 10
Home
trullock edited this page Sep 14, 2010
·
6 revisions
A Fluent NHibernate.Search Attributes-Less mapping interface for NHibernate provider implementation of Lucene.NET.
NHibernate : 2.1.2.4000
NHibernate.Search : Compiled from trunk against Lucene.NET 2.9.1.2
Lucene.NET : 2.9.1.2
http://blog.sb2.fr/post/2010/03/05/Introducing-FluentNhibernateSearch-Mapping-Interface.aspx
http://blog.sb2.fr/post/2010/03/08/FluentNHibernarteSearch-03-Beta-Released-Now-Support-Fluent-XML-Less-Configuration.aspx
http://blog.sb2.fr/post/2010/03/07/FluentNHibernarteSearch-02-Beta-Released.aspx
public class BookSearchMap : DocumentMap<Book>
{
public BookSearchMap()
{
Id(p => p.BookId).Bridge().Guid();
Name("Book");
Map(x => x.Title)
.Store().Yes()
.Index().Tokenized();
Map(x => x.Description)
.Store().Yes()
.Index().Tokenized();
}
}
public class AuthorSearchMap : DocumentMap<Author>
{
public AuthorSearchMap()
{
Id(p => p.AuthorId).Bridge().Guid();
Name("Author");
Map(x => x.Name)
.Store().Yes()
.Index().Tokenized();
Embedded(x => x.Books).AsCollection();
}
}
public class AuthorSearchMap : DocumentMap<Author>
{
public AuthorSearchMap()
{
Id(p => p.AuthorId).Bridge().Guid();
Name("Author");
Map(x => x.Name)
.Store().Yes()
.Index().Tokenized();
Embedded(x => x.Books).AsCollection();
}
}
public class LibrarySearchMapping : SearchMapping
{
public LibrarySearchMapping()
{
AddAssembly(Assembly.GetExecutingAssembly());
}
}
Configuration nhcfg = FluentSearch.Configure()
.DefaultAnalyzer().Standard()
.DirectoryProvider().FSDirectory()
.IndexBase("~/Index")
.IndexingStrategy().Event()
.MappingClass<LibrarySearchMapping>()
.BuildConfiguration();
Fluently.Configure()
.Database(SQLiteConfiguration.Standard.InMemory())
.Search(s => s.DefaultAnalyzer().Standard()
.DirectoryProvider().RAMDirectory()
.IndexingStrategy().Event()
.MappingClass<LibrarySearchMapping>())
.BuildConfiguration()