首页 / 软件开发 / .NET编程技术 / NHibernate.Search:基于Lucene.NET的全文索引
NHibernate.Search:基于Lucene.NET的全文索引2011-10-15 博客园 孤独侠客NHibernate.Search现在是NHiberante Contrilb下面的一个还没有发布的项目,也是从 Hibernate.Search移植而来,把NHibernate和Lucene.NET结合在一起,ORM持久化对象到数据库 中,Lucene.NET提供索引及查询支持.下面在实际使用一下NHibernate.Search的使用:由于这个项目还没有发布,它的很多特性也是一直在变化,所以现在只是以我下载的版本为准,如果你想 尝试此项目,请下载最下面的代码,里面包括自己编译生成的NHibernate.Search及最新的Lucene.net相关 的dll.一.配置 1.修改你的NHibernate配置信息的地方,同样添加NHibernate.Search的配置信息.<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
<section name="nhs-configuration" type="NHibernate.Search.Cfg.ConfigurationSectionHandler, NHibernate.Search"
requirePermission="false" />
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
.....
</configSections>
需要注意的是,在NHibernate.Search之前的版本中,曾经NHibernate.Search的配置信息和NHIbernate 的放在一起.接下来,我们来看下具体的配置块:<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<bytecode-provider type="lcg"/>
<reflection-optimizer use="true"/>
<session-factory name="NHibernateSearch.Demo">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider, NHibernate</property>
<property name="connection.connection_string">
Data Source=|DataDirectory|Demo.db3;Version=3;Compress=False;synchronous=OFF;
</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
<property name="connection.driver_class">NHibernate.Driver.SQLite20Driver</property>
<property name="prepare_sql">true</property>
<property name="cache.provider_class">NHibernate.Cache.HashtableCacheProvider, NHibernate</property>
<property name="cache.use_query_cache">true</property>
<mapping assembly="NHibernateSearch.Demo.Model"/>
</session-factory>
</hibernate-configuration>
<nhs-configuration xmlns="urn:nhs-configuration- 1.0">
<search-factory sessionFactoryName="NHibernateSearch.Demo">
<property name="hibernate.search.default.directory_provider">NHibernate.Search.Store.FSDirectoryPro vider,
NHibernate.Search</property>
<property name="hibernate.search.default.indexBase">~/Index</property>
<property name="hibernate.search.default.indexBase.create">true</property>
</search-factory>
</nhs-configuration>