日期:2014-05-18  浏览次数:20620 次

Lucene.Net 查询的问题,第一次弄大家多帮忙^多谢
测试数据
title

测试标题
51aspx
51aspx测试标题
abc

1。建立索引    
      IndexWriter writer = null;
  
  writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true);

  SqlDataReader myred = ExecuteQuery("select title,content from article");

  //建立索引字段
  while (myred.Read())
  {
  Document doc = new Document();

  doc.Add(new Field("title", myred["title"].ToString(), Field.Store.YES,Field.Index.TOKENIZED));

  writer.AddDocument(doc);
  }
  myred.Close();
  myred.Dispose();

  writer.Optimize();
  writer.Close();

2。查询
    string INDEX_STORE_PATH = Server.MapPath("index"); //INDEX_STORE_PATH 为索引存储目录
  string keyword = TextBox2.Text;

  Hits myhit = null;

  IndexSearcher mysea = new IndexSearcher(INDEX_STORE_PATH);
  QueryParser q = new QueryParser("indexcontent", new StandardAnalyzer());
  Query query = q.Parse(keyword);
   
  myhit = mysea.Search(query);
  Response.Write("关于:" + keyword + " 搜索到" + myhit.Length() + "个结果<br>");

问题.
是现在我输入"5"不能查出现在的两条数据,但输入"51aspx"就能查出来,输入"abc"也查不到数据
那位高手帮我看一下多谢了

------解决方案--------------------
StandardAnalyzer分词的问题
------解决方案--------------------
你查询aspx也不会有结果