A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aisini 金牌黑马   /  2014-8-20 14:44  /  1026 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                根据java版的lucene的德莫,用C#写的样例
   FileProcessMain.cs
  1. namespace com.cplatform.lucene.main
  2. {
  3.     using InDexProcesser = com.cplatform.lucene.index.IndexProcesser;

  4.     public class FileProcessMain
  5.     {

  6.         public static void Main(string[] args)
  7.         {

  8.             string inputFile = "哈利波特.txt";
  9.             string outputDir = "f:\\lucene\\index\\";

  10.             if (!System.IO.Directory.Exists(outputDir))
  11.             {
  12.                 System.IO.Directory.CreateDirectory(outputDir);
  13.             }

  14.             InDexProcesser index = new InDexProcesser();
  15.             index.createIndex(inputFile);

  16.         }

  17.     }

  18. }
复制代码

IndexProcesser.cs
  1. using System;
  2. using System.IO;
  3. using Lucene.Net.Analysis.Cn;

  4. namespace com.cplatform.lucene.index
  5. {

  6.     using Analyzer = Lucene.Net.Analysis.Cn.ChineseAnalyzer;
  7.     using Document = Lucene.Net.Documents.Document;
  8.     using Field = Lucene.Net.Documents.Field;
  9.     using IndexWriter = Lucene.Net.Index.IndexWriter;
  10.     using FSDirectory = Lucene.Net.Store.SimpleFSDirectory;
  11.     using MaxFieldLength = Lucene.Net.Index.IndexWriter.MaxFieldLength;
  12.     using StringField = Lucene.Net.Search.SortField;

  13.     public class IndexProcesser
  14.     {

  15.         private string INDEX_STORE_PATH = "f:\\lucene\\index\\";

  16.         public virtual int createIndex(string inputDir)
  17.         {
  18.             int numIndexed = 0;
  19.             try
  20.             {
  21.                 Analyzer analyzerWrapper = new Analyzer();
  22.                 FSDirectory indexStore = new FSDirectory(new DirectoryInfo(INDEX_STORE_PATH));
  23.                 MaxFieldLength m = new MaxFieldLength(100);
  24.                 IndexWriter writer = new IndexWriter(indexStore, analyzerWrapper ,m);
  25.                  
  26.                 indexFile(writer, new FileInfo(inputDir));
  27.                 writer.Close();

  28.             }
  29.             catch (Exception e)
  30.             {
  31.                 Console.WriteLine(e.ToString());
  32.                 Console.Write(e.StackTrace);
  33.             }

  34.             return numIndexed;

  35.         }

  36.          
  37.          
  38.         private static void indexFile(IndexWriter writer, FileInfo f)
  39.         {     

  40.             Console.WriteLine("Indexing " + f.Name);
  41.             Document doc = new Document();
  42.             doc.Add(new Field("filename", f.Name, Field.Store.YES ,Field.Index.ANALYZED));
  43.             doc.Add(new Field("path", f.CreationTime.ToString(), Field.Store.YES, Field.Index.ANALYZED));
  44.             writer.AddDocument(doc);

  45.         }



  46.     }

  47. }
复制代码




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马