|
Lucene.net 实现全文搜索(6) /// 获取网页标题 /// </summary> /// <param name="html"></param> /// <returns></returns> private string getTitle(string html) { Match m = Regex.Match(html, "<title>(.*)</title>"); if (m.Groups.Count == 2) return m.Groups[1].Value; return "文档标题未知"; } /**//// <summary> /// 优化索引并关闭写入器 /// </summary> public void Close() { writer.Optimize(); writer.Close(); } }
首先建立Document对象,然后为Document对象添加一些属性Field.你可以把Document对象看成是虚拟文件,将来将从此获取信息.而Field则看成是描述此虚拟文件的元数据(metadata).其中Field包括四个类型: Keywork
该类型的数据将不被分析,而会被索引并保存保存在索引中. UnIndexed 该类型的数据不会被分析也不会被索引,但是会保存在索引. UnStored 和UnIndexed刚好相反,被分析被索引,但是不被保存. Text 和UnStrored类似.如果值的类型为string还会被保存.如果值的类型为Reader就不会被保存和UnStored一样.
最后将每一个Document添加到索引当中。
下面是对索引进行搜索
//创建一个索引器 IndexSearcher searcher = new IndexSearcher(indexDirectory);
|