学习笔记17 用盘古分词器+window service+lucene.net 使用注意事项

本文介绍如何利用Lucene.NET和盘古分词库构建索引文件,并将其集成到Windows Service中,实现定时更新索引,减少在使用过程中建立索引的时间。重点解决在服务启动时遇到的问题,如路径未找到错误,并提供解决方案。

将lucene.net用 window service 定时的 生成的索引文件 以便在使用中不浪费建立索引的时间在分词方面我选择的是盘古的分词 听说是最好的.当然在这 我使用的是控制台程序,如果想换成window service 的话 可以将main方法中的代码放到window service 中的onstart方法中就行了如果不知道创建服务 和安装服务的朋友可以查看我上一篇文章.window servicve 的相关内容具体的使用情况是: //建立索引字段using System; using System.Collections.Generic; using System.Text; using System.Data.OracleClient; using System.Data; using WindowsService2; using Lucene.Net; using Lucene.Net.Analysis.PanGu; using Lucene.Net.Documents; using Lucene.Net.Index; using Lucene.Net.Search; using PanGu; using PanGu.HighLight; using PanGu.Dict; using Lucene.Net.Analysis; using Lucene.Net.Analysis.Standard; using Lucene.Net.QueryParsers; using Lucene.Net.Store; using Lucene.Net.Util; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { PanGuAnalyzer analyzer = null; IndexWriter Writer = null; try { //analyzer = new PanGuAnalyzer(); //Writer = new IndexWriter(@"D:\MyIndex", new PanGuAnalyzer(), true);//实例化一个写入器(盘古分词器) //Writer = new IndexWriter(Indexpath, new WhitespaceAnalyzer(), true);//实例化一个写入器(lucene.net自带分词) //Document dm = new Document();//实例化文档对象 string sql = "SELECT * FROM V_PROCUREMENT"; DataSet ds = DBserver.Query(sql); foreach (DataRowView drv in ds.Tables[0].DefaultView) { Document Doc = new Document(); Doc.Add(new Field("title", drv["title"].ToString(), Field.Store.YES, Field.Index.TOKENIZED)); sDoc.Add(new Field("content", drv["content"].ToString(), Field.Store.YES, Field.Index.TOKENIZED)); Doc.Add(new Field("name", drv["name"].ToString(), Field.Store.YES, Field.Index.TOKENIZED)); Doc.Add(new Field("corporation_cname", drv["corporation_cname"].ToString(), Field.Store.YES, Field.Index.TOKENIZED)); Writer.AddDocument(Doc); } Writer.Optimize(); Writer.Close(); //创建索引结束 } catch { throw; } } } }

看起来以前都是如此的简单和明了 结果很好,建立服务.....直到:启动服务的时候出现了问题.服务器启动了又停止了....什么什么的,这说明什么呢?

说明写服务代码本身就有问题所以导致服务无法启动.

那是什么问题呢?

通过把代码复制到控制台程序中运行 才发现:错误是:

未能找到路径“C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\windows Sevcer\ConsoleApplication1\bin\Dictionaries\Dict.Dct”的一部分。 说明什么呢? 我们缺少一个dict.dct的文件 这个文件时盘古内置的文件.

还有一个文件:pangu.xml 也是必须的文件

这样成成功的启动了项目;

将文件放置在该放置的位置 这样就启动成功了.

就是这样了.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值