花了两天的时间研究了下Lucene.Net 发现确实挺好玩.... 最新版本是3.0.3 (最后更新时间2012-10)

  可惜3.0.3版本的Lucene.net无法和盘古分词 (最新版为2.3.1.0 最后更新时间 2010-10)一起使用.....因为盘古分词 基于2.9.x.x版本 写的 ,在 3.0.3中很多 接口 和 类名 发生了 变化..(当然 网上 也有解决方案 :基于新的接口 重新 编译 盘古分词)

  今天主要用的是 Lucene.Net 2.9.2.2 与盘古分词 2.3.0.0版本.

  主要功能就是 创建索引,和搜索 下面贴出 2段代码

创建索引:

  

 View Code

搜索代码:

string indexPath = @"C:\lucenedir";//最好将该项放在配置文件中。string kw = Request["txtContent"];kw = kw.ToLower();FSDirectory directory = FSDirectory.Open(new DirectoryInfo(indexPath), new NoLockFactory());IndexReader reader = IndexReader.Open(directory, true);IndexSearcher searcher = new IndexSearcher(reader);//搜索条件//PhraseQuery query = new PhraseQuery();BooleanQuery queryMsg = new BooleanQuery();//或者条件TermQuery query = null;foreach (string word in Common.WebCommon.SplitWord(kw))//将用户输入的搜索内容进行了盘古分词、
            {query = new TermQuery(new Term("msg", word));//query.Add(new Term("msg", word));
              queryMsg.Add(query, BooleanClause.Occur.SHOULD);}//query.SetSlop(100);//多个查询条件的词之间的最大距离.在文章中相隔太远 也就无意义.(例如 “大学生”这个查询条件和"简历"这个查询条件之间如果间隔的词太多也就没有意义了。)//TopScoreDocCollector是盛放查询结果的容器TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true);searcher.Search(queryMsg, null, collector);//根据query查询条件进行查询,查询结果放入collector容器ScoreDoc[] docs = collector.TopDocs(0, collector.GetTotalHits()).scoreDocs;//得到所有查询结果中的文档,GetTotalHits():表示总条数   TopDocs(300, 20);//表示得到300(从300开始),到320(结束)的文档内容.       //可以用来实现分页功能
    List<SearchResult> list = new List<SearchResult>();for (int i = 0; i < docs.Length; i++){////搜索ScoreDoc[]只能获得文档的id,这样不会把查询结果的Document一次性加载到内存中。降低了内存压力,需要获得文档的详细内容的时候通过searcher.Doc来根据文档id来获得文档的详细内容对象Document.int docId = docs[i].doc;//得到查询结果文档的id(Lucene内部分配的id)Document doc = searcher.Doc(docId);//找到文档id对应的文档详细信息SearchResult result = new SearchResult();result.Msg =Common.WebCommon.Highlight(kw,doc.Get("msg"));result.Title = doc.Get("title");result.Url = "/BookDeatail.apsx?id=" + doc.Get("id");list.Add(result);}this.SearchRepeater.DataSource = list;this.SearchRepeater.DataBind();

大体 思路就是 这样子 不错 这两坨代码 太难看了 于是 我基于这2段 代码 封装下了于是有了  LuceneHelper

 View Code

使用方法:

 View Code

以上为2.9.2.2 版本

经过几天的摸索,发现 3.0.3 改变不是很大...于是写了一份Lucene3.0.3的Helper

代码:

 View Code

使用方式 通上个版本 只是修改 版本的兼容性

小菜学习Lucene.Net(更新3.0.3版本使用)相关推荐

  1. 最新艾咔二级域名分发系统更新v3.0.1版本

    介绍: 大家好我是艾咔这次给你们更新了二级域名分发系统上个版本v2.4大家还记得吧这次给你发布v3.0.1版本 演示站:http://dns.aiknet.cn 目前支持的域名解析平台有 dnspod ...

  2. Pig 更新: 发布 0.7 版本

    关于 Pig Pig 是一款文件格式化工具,它可以将"金山词霸"生词本软件导出的格式混乱的文件整理成网页格式,方便大家打印.更多内容可以参考以前的文章<和 Pig 一起学英语 ...

  3. Word图片上传控件(WordPaster)更新-2.0.15版本

    更新说明: 1.   增加对webp图片的支持,支持微信公众号图片的下载. 效果参考:http://www.ncmem.com/doc/view.aspx?id=9761f8ce4fe04d0ab0f ...

  4. 微信十周年更新8.0最新版本,增加烟花新表情、状态,快来看看还有什么新功能吧

    今天下班前看到大佬说微信更新了 8.0,立马到 App Store 更新体验了一番. 微信的更新描述还是和以往一样 "更新了若干功能." 这也是微信的乐趣所在,每当微信更新,就会有 ...

  5. Scikit-learn 更新至 0.24 版,这 10 个新特性你需要了解

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | towardsdatascience 作者 | Jeff ...

  6. 小菜学习设计模式(五)—控制反转(Ioc)

    写在前面 设计模式目录: 小菜学习设计模式(一)-模板方法(Template)模式 小菜学习设计模式(二)-单例(Singleton)模式 小菜学习设计模式(三)-工厂方法(Factory Metho ...

  7. (一)Git学习记录(不断更新)

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  8. 《从零开始学习ASP.NET MVC 1.0》-开天辟地入门篇

    <从零开始学习ASP.NET MVC 1.0> 文章导航 (一) 开天辟地入门篇 (二) 识别URL的Routing组件 (三) Controller/Action 深入解析与应用实例 ( ...

  9. Scikit-learn 更新至0.24版,这10个新特性你需要了解

    本文转载自机器之心. 作者:Jeff Hale 作者: Scikit-learn 更新了,新特性主要包括选择超参数更快的方法.ICE 图.直方图 boosting 改进.OneHotEncoder 支 ...

最新文章

  1. 一个KVO 实现WKWebView加载进度条的例子 (注意最后移除观察者)
  2. 上海中学生的科技活动小论文集锦
  3. 数据库迁移——自动迁移Enable-Migrations
  4. (转)android四种动画
  5. OpenCV几何变换的实例(附完整代码)
  6. 小波阈值去噪法基础理论
  7. 生成方法中参数的注释
  8. LeetCode算法
  9. 微软故障转移群集服务器要求,故障转移群集概述
  10. Git 原理详解及实用指南
  11. linux python json,在Python中使用JSON
  12. Linux下mongodb安装及数据导入导出教程
  13. spring mvc Spring Data Redis RedisTemplate [转]
  14. WebAPI PUT,DELETE请求404
  15. ES6学习笔记七(Set和Map)
  16. Python相关分析—一个金融场景的案例实操
  17. UILabel发光字体
  18. gdbserver 交叉编译
  19. 追捕文件WRY.DLL的浅显分析及程序示例
  20. Linux设备模型-1-主要概念

热门文章

  1. 有这10个特征的项目领导者做的项目,失败率增加60%
  2. Java的工厂模式(三)
  3. 综合-某假期欢乐赛 (Apri, 2018)
  4. Python 列表 list() 方法
  5. mac上使用zsh配置环境变量
  6. ACM程序设计选修课——1030: Hungar的时尚球场(水题+耐心)
  7. JAVA Web day02--- Android小白的第二天学习笔记
  8. ASP.NET MVC 实现与SQLSERVER的依赖缓存
  9. [swift] Async
  10. AbsoluteLayout 相框