大家帮忙看看这段代码问题在哪,关于全文检索的
public string indexpath = "F:\\index";
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = folderBrowserDialog1.ShowDialog();
string path;
if (result == DialogResult.OK)
{
path = this.folderBrowserDialog1.SelectedPath;
IndexWriter writer = new IndexWriter(indexpath, new StandardAnalyzer(), true);
FileInfo file = new FileInfo(path);
IndexDirectory(writer,file);
writer.Optimize();
writer.Close();
}
}
public void IndexDirectory(IndexWriter writer, FileInfo file)
{
if (Directory.Exists(file.FullName))
{
String[] files = Directory.GetFileSystemEntries(file.FullName);
if (files != null)
{
for (int i = 0; i < files.Length; i++)
{
IndexDirectory(writer, new FileInfo(files[i])); //这里是一个递归
}
}
}
else if (file.Extension == ".txt")
{
IndexFile(file, writer);
}
}
public void IndexFile(FileInfo file,IndexWriter writer)
{
Document doc = new Document();
doc.Add(Field.Keyword("filename", file.FullName));
doc.Add(Field.Text("contents", new StreamReader(file.FullName, System.Text.Encoding.Default)));
writer.AddDocument(doc);
}