Spring.net整合全文检索Lucene.net的方法(附例子)(3)
三、 全文搜索 给数据访问模板DaoTemplate添加一个全文搜索的方法: Code [http://www.xueit.com] /**/ /// summary /// 全文检索 /// /summary /// typeparam name="T" 类型 /typep
三、全文搜索
给数据访问模板DaoTemplate添加一个全文搜索的方法:

/**//// <summary> /// 全文检索 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="query">关键词</param> /// <returns></returns> IList FullTextSearch(string query)#region IList<T> FullTextSearch<T>(string query) public IList<T> FullTextSearch<T>(string query) { //生成字段列表 object objTarget = Assembly.GetAssembly(typeof(T)).CreateInstance(typeof(T).ToString()); PropertyInfo[] pps = objTarget.GetType().GetProperties(); string fs = ""; foreach(PropertyInfo p in pps) { var fieldAttr = p.GetCustomAttributes (typeof(FieldAttribute),false); if (fieldAttr!=null && fieldAttr.Length>0) { fs = p.Name ","; } } string[] fields = fs.TrimEnd(',').Split(','); //中文拆词 ChineseAnalyzer cnAnalyzer = new ChineseAnalyzer(); MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, cnAnalyzer); Query queryObj; try { queryObj = parser.Parse(query); } catch (ParseException) { return null; } //使用当前Session IFullTextSession fullTextSession = NHibernate.Search.Search.CreateFullTextSession(Session); IQuery nhQuery = fullTextSession.CreateFullTextQuery(queryObj, typeof(T)); //结果 IList<T> results = nhQuery.List<T>(); return results; } #endregion
四、运行一下
Insert对象:
Search:
随笔写得很粗糙,大部分细节在附件的例程包中(包括数据库备份,模板,项目文件),如果有兴趣,还是参考实例吧:
收藏文章
热评话题
精彩图集
精彩文章
- 暂无记录。
热门标签
js实现日历
强制换行
卸载VS2011
Hibernte
无限遍历
外网IP
使用方法
ISNULL
fopen()函数
QWERTY
CURLOPT
更新事
iis7.0
url编码
invalid_argu
按指定value排
索引无效
php二维数组
$.each
链接元素
鼠标事件
ci框架
写入
xml文件
memory_get_u
Web客户端访问
抽象
get_headers
Canvas
备份优化
自动删除
gmt
tabs
ydev
应用范围
open()
重启进程
开发环境配置
二级
用户远程连接
gif动画
AVL树
Pear
.7z
youtube视频
局部数组
捕捉
系统负载
1=1
sst命令
java基础类
控件类
ready()
PHPExcel
生
微信公众账号
aspx
副
Cookie cooki
操作xml文件
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229