using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using Lucene;using Lucene.Net;using Lucene.Net.Analysis;using Lucene.Net.Analysis.DE;using Lucene.Net.Analysis.Standard;using Lucene.Net.Documents;using Lucene.Net.Index;using Lucene.Net.QueryParsers;using Lucene.Net.QueryParsers.Precedence;using Lucene.Net.Search;using Lucene.Net.Search.Spans;using Lucene.Net.Store;using Lucene.Net.Util;using NUnit.Framework;
namespace websearch{ /// <summary> /// WebForm2 的摘要说明。 /// </summary> public class WebSecrch : System.Web.UI.Page { DateTime mydate=DateTime.Now; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!Page.IsPostBack) { Analyzer analyzer = new StandardAnalyzer(); Directory directory = FSDirectory.GetDirectory(@"c:/tmp/testindex", true); bool indexExist = IndexExist(directory); IndexWriter iwriter; if(indexExist) { iwriter = new IndexWriter(directory, analyzer, false); } else { iwriter = new IndexWriter(directory, analyzer, true); } Document doc = new Document(); doc.Add(Field.Keyword("nid","2")); doc.Add(Field.Text("title","我是一个人")); doc.Add(Field.UnStored("content","请输入你是一个好人的理由")); doc.Add(Field.Keyword("addtime",mydate)); doc.Add(Field.UnStored("other", "nothing")); String newsUrl = "/news/viewhtml/test.htm"; doc.Add(Field.UnIndexed("visiturl", newsUrl)); iwriter.AddDocument(doc); iwriter.Optimize(); iwriter.Close(); IndexSearcher isearcher = new IndexSearcher(directory);
Query query; query = QueryParser.Parse("3", "title", analyzer); query = QueryParser.Parse("2", "nid", analyzer); Hits hits = isearcher.Search(query);
Response.Write("<font color=red>共找到"+hits.Length()+"条记录</font><br>");
for (int i = 0; i <hits.Length(); i++) { Document hitDoc = hits.Doc(i); Response.Write("编号:"+hitDoc.Get("nid").ToString()+"<br>"); Response.Write("标题:"+hitDoc.Get("title").ToString()+"<br>"); Response.Write("链接:"+hitDoc.Get("visiturl").ToString()+"<br>"); } isearcher.Close(); directory.Close(); } } public static bool IndexExist(Directory indexDir) { return IndexReader.IndexExists(indexDir); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load);
} #endregion }}
