知识大全 Lucene.net的全新体验

Posted 索引

篇首语:人并不是因为美丽才可爱,而是因为可爱才美丽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Lucene.net的全新体验相关的知识,希望对你有一定的参考价值。

Lucene.net的全新体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     【简介】     好多人都知道的吧 反正我是最近才好好的看了一下 别笑我拿历史当新闻哦 不太了解Lucence的朋友先听我说两句哦 Lucene的知识主要分为索引 搜索 分析器 性能优化几个部分 索引和搜索没啥可说的 看几个例子就会了 来回那一套儿 按部就班做几个实验就熟悉了 分析器是Lucence的精华 又分为分词和过滤两部分 而且中文分词更是难点 我的例子里是用从博客园程序中提取出来的Lucene Net Analysis Cn dll来实现中文分词的 谁有中科院的那套中科院ICTCLAS分词工具的C#版麻烦提供一下哦 性能优化也很重要 因为如果要索引的文件比较大的话 建立索引的性能就会很大的下降 你可以调整IndexWriter的几个参数来优化索引性能 还有可以用IndexWriter Optimize()方法(这个方法主要是优化查询速度 反而使索引性能有所下降) 另外就是可以用多线程来分别对不同的内容进行索引并保存到RAMDirectory里 然后再把所有的内存索引合并到FSDirectory里 甚至可以让多台服务器分别处理内容的各个部分 然后把索引结果放到一个队列里 再有一台机器去读取索引结果队列并合并索引结果     做这个示例主要是为了演示一下的功能 它可以对你指定的目录里的l文件进行全文索引 然后对其进行查询 由于如果要索引的目录里文件特别多特别大的话 建立索引需要花费很长的过程 所以我在示例程序里使用了异步编程 以便在建立索引的时候不阻塞界面线程   【内容】    先看一个简单例子   public void Test ()       //建立一个内存目录    Lucene Net Store RAMDirectory ramDir = new Lucene Net Store RAMDirectory();       //建立一个索引书写器    IndexWriter ramWriter = new IndexWriter(ramDir new ChineseAnalyzer() true);       //要索引的词 这就相当于一个个的要索引的文件    string[] words = 中华人民共和国 人民共和国 人民 共和国 ;       //循环数组 创建文档 给文档添加字段 并把文档添加到索引书写器里    Document doc = null;    for (int i = ; i < words Length; i++)       doc = new Document();    doc Add(Field Text( contents words[i]));    ramWriter AddDocument(doc);          //索引优化    ramWriter Optimize();       //关闭索引读写器 一定要关哦 按理说应该把上面的代码用try括主 在finally里关闭索引书写器    ramWriter Close();       //构建一个索引搜索器    IndexSearcher searcher = new IndexSearcher(ramDir);       //用QueryParser Parse方法实例化一个查询    Query query = QueryParser Parse( 中华人民 contents new ChineseAnalyzer());       //获取搜索结果    Hits hits = searcher Search(query);       //判断是否有搜索到的结果 当然你也可以遍历结果集并输出    if (hits Length() != )    MessageBox Show( 有 );    else    MessageBox Show( 没有 );       其它的具体看下载代码吧     下载的文件里有个doc的文件夹 里面有 个文本文件 大家可以试着给那个目录建立索引 然后搜索一下 人民 中华 等几个关键字 看看能出来搜索结果吗?简单说一下示例程序 就是遍历一个目录 找出所有文本和网页的文件 建立Lucene的Document文件 并索引了文件的目录和内容 然后添加到索引器里 最后在程序执行目录的Index子目录里建立索引 这一部分的调用使用了异步委托 搜索的时候就是在Index目录里检索符合某个关键字的条目   【注意】    建立完索引后一定要调用IndexWriter的Close方法 否则如果你要索引的目录里的文件少于minMergeDocs的话 是不能建立索引的    Field Text的静态方法有两个重载版本 如果第二个参数是string的话那么这个字段既索引也存储 如果是TextReader的话只索引不存储 这点要搞清楚 另外在构建TextReader的时候要注意使用合适的编码格式 否则有的文件读出来是乱码 建立的索引肯定也是按乱码建立的咯   【小节】     其实lucene大家谁也是学学就会 关键要是整一个像google baidu这样的搜索引擎就难了 好歹这搜索引擎也是一个行业呢 所以谁有兴趣 好好钻研一下搜索行业的相关技术 没准靠这个还能创业呢 是吧     再问一下 《lucence实战》有中文版吗?或者其它关于Lucence的中午图书 给推荐一本     最后借贵地和大家讨论一个问题 从长远考虑 程序员学那项技术比较有前途?做程序也好几年了 想找一个领域好好深入一下 以后做一个行业的领域专家 那样才不会太累 要不什么都鼓捣 太累了 而且还不容易出成绩 我列举了几个方向 大家帮忙分析分析 谢谢    Linux+oracle(走数据库管理的路线)    汇编 c底层驱动开发(据说很简单 就那么几个指令 学一年就精通了 不像 NET 得老跟着走)    ec++ kjava嵌入式开发(包括手机游戏 路由固件等开发)    即时通讯行业(网络编程 包括网络游戏的服务端编程这些)    搜索行业(不太了解)    OA 工作流(自己做一套不用编程 拖拖拽拽画画就能实现企业业务流程的电子化 infopath OSS formserver WF的那一套)   网站开发(范围很大 要掌握的东西太多 会的人很多 深入的很少)    流媒体开发( G时代这玩意儿不知道能不能派上用场)   【参考】   idior的《系列》   李刚 宋伟 邱哲的《ajax+lucene构建搜索引擎》         下载地址    cha138/Article/program/net/201311/12564

相关参考

知识大全 全新ASP.NET MVC 4开发体验

全新ASP.NETMVC4开发体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Visual

知识大全 Struts 1.2.2 新功能全新体验

Struts1.2.2新功能全新体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ()apac

知识大全 Seam之初体验

Seam之初体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从本文开始我将会开始一个全新系列

水产养殖全新养殖思路

随着水产养殖理论与实践的发展,水产养殖产生了全新的养殖思路:1.全新的混养概念:科学的混养概念告诉我们,不但四大家鱼可以混养,甚至鱼、虾、贝、蟹之间也可合理搭配混养。如鳗鱼塘里混养胭脂鱼,胭脂鱼可摄食

水产养殖全新养殖思路

随着水产养殖理论与实践的发展,水产养殖产生了全新的养殖思路:1.全新的混养概念:科学的混养概念告诉我们,不但四大家鱼可以混养,甚至鱼、虾、贝、蟹之间也可合理搭配混养。如鳗鱼塘里混养胭脂鱼,胭脂鱼可摄食

中国上海自由贸易区已正式挂牌,自由贸易区不是简单地靠税收的优惠政策,而是需要上海自己创造一个全新的服务模式,提高全新管理

中国上海自由贸易区已正式挂牌,自由贸易区不是简单地靠税收的优惠政策,而是需要上海自己创造一个全新的服务模式,提高全新管理及风险控制的能力。国务院要求上海自由贸易区形成可复制、可推广的经验,将在全国推广

知识大全 全新感受Oracle 9i

全新感受Oracle9i  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle背景资料  

全新欣康宁

心血管疾病是世界卫生组织(WHO)列为世界上仅次于癌症的第二大疾病。中国历史上对心脑血管病的重视与研究,始于1970年周恩来总理主持召开的全国中西医结合工作会议,对促进防治冠心病等的研究,起到了极大的

全新世海进HoloceneTransgression

由于最近一次冰期内形成的冰川的溶化而导致的海平面的升高。这次升高始于大约距今18000年前并一直持续到今天。在最后一次(威斯康星)冰期期间,海平面比现在低100多米,当时的岸线在大陆架的外缘附近,在距

知识大全 IBM推出全新Informix数据库管理工具

IBM推出全新Informix数据库管理工具  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  IB