lucene学习:
一:下载Lucene.net的各种版本
1.你需要一个svn客户端TortoiseSVN非常好用,可以从官方网站下载。下载地址:http://tortoisesvn.net/downloads。
下载完成,就安装,需要重启电脑。然后在d盘下建立一个空文件夹,命名为Lucene.Net。打开文件夹,右键,则出现菜单。
在版本库中输入:https://svn.apache.org/repos/asf/incubator/lucene.net/trunk/ 然后点击确定,
历史版本在https://svn.apache.org/repos/asf/incubator/lucene.net/tags/目录,可以用浏览器打开查看。然后按上述步骤就可以下载。
二:.net 使用Lucene.Net
1.新建项目
2.引用lucene.net,在项目下新建文件夹,LuceneDemo用来存放。
3.在testform.cs 中添加索引,搜索索引。编码如下;
public partial class TestForm : System.Web.UI.Page
{
public string Result="";
protected void Page_Load(object sender, EventArgs e)
{
Add();
Search();
}
//添加索引
private void Add()
{
Analyzer analyzer = new StandardAnalyzer();
FSDirectory dir = SimpleFSDirectory.Open(new DirectoryInfo("E:/每天一点点/Lucene/LuceneDemo/LuceneDemo"));
IndexWriter writer = new IndexWriter(dir, analyzer, true);
AddDocument(writer, "SQL Server 2008 的发布", "SQL Server 2008 的新特性");
AddDocument(writer, "ASP.Net MVC框架配置与分析", "而今,微软推出了新的MVC开发框架,也就是Microsoft ASP.NET 3.5 Extensions");
writer.Optimize();
writer.Commit();
//正确关闭indexwriter
try
{
writer.Close();
}
finally
{
if (IndexWriter.IsLocked(dir))
{
IndexWriter.Unlock(dir);
}
}
}
//添加
private void AddDocument(IndexWriter writer, string title, string content)
{
Document document = new Document();
document.Add(new Field("title", title, Field.Store.YES, Field.Index.TOKENIZED));
document.Add(new Field("content", content, Field.Store.YES, Field.Index.TOKENIZED));
writer.AddDocument(document);
}
//搜索索引
private void Search()
{
Analyzer analyzer = new StandardAnalyzer();
FSDirectory dir = SimpleFSDirectory.Open(new DirectoryInfo("E:/每天一点点/Lucene/LuceneDemo/LuceneDemo"));
IndexSearcher searcher = new IndexSearcher(dir);
MultiFieldQueryParser parser = new MultiFieldQueryParser(new string[] { "title", "content" }, analyzer);
Query query = parser.Parse("SQL");
Hits hits = searcher.Search(query);
for (int i = 0; i < hits.Length(); i++)
{
Document doc = hits.Doc(i);
Result+=string.Format("title:{0} content:{1}", doc.Get("title"), doc.Get("content"))+"\n";
}
searcher.Close();
}
}
其中:new StandardAnalyzer();写入文件夹中。new RAMDirectory();写入内存中。
4.输出搜索结果。成功。
参考url:http://www.cnblogs.com/birdshover/archive/2008/08/26/1277103.html