因为工作的需要,不得不研究这一块。我首先考虑过去在字符串里通过LIKE来模糊匹配,这样当然可以,可是如果当量非常大的时候效率会降到多低你也是可以想到的,那么其他的办法就只有Lucene.net了。全文索引或者数据库索引,基本上都是两步走,第一步,建立索引,第二步,去搜索。
建立索引:
/// <summary>
/// 建立索引
/// </summary>
/// <param name="myred"></param>
/// <returns></returns>
public void CreateIndex(SqlDataReader myred)
{
Analyzer analyzer = new PanGuAnalyzer(); //我在这里用的是盘古分词器,因为LUCENE.NET自带的分词器功能比较单一,不能满足我的要求
IndexWriter writer = null;
try
{
writer = new IndexWriter("c:/index/", analyzer, true);
//建立索引字段
while (myred.Read())
{
AddDocument(ref writer, Convert.ToString(myred.GetInt32(0)),myred.GetString(1).ToString());