麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Lucene.net試用

2019-11-18 16:55:31
字體:
來源:轉載
供稿:網友

【簡介】
  lucene.net好多人都知道的吧,反正我是最近才好好的看了一下,別笑我拿歷史當新聞哦,不太了解Lucence的朋友先聽我說兩句哦。Lucene的知識主要分為索引、搜索、分析器、性能優化幾個部分。索引和搜索沒啥可說的,看幾個例子就會了,來回那一套兒,按部就班做幾個實驗就熟悉了。分析器是Lucence的精華,又分為分詞和過濾兩部分,而且中文分詞更是難點,我的例子里是用從博客園程序中提取出來的Lucene.Net.Analysis.Cn.dll來實現中文分詞的,誰有中科院的那套中科院ICTCLAS分詞工具的C#版麻煩提供一下哦。性能優化也很重要,因為如果要索引的文件比較大的話,建立索引的性能就會很大的下降,你可以調整IndexWriter的幾個參數來優化索引性能,還有可以用IndexWriter.Optimize()方法(這個方法主要是優化查詢速度,反而使索引性能有所下降),另外就是可以用多線程來分別對不同的內容進行索引并保存到RAMDirectory里,然后再把所有的內存索引合并到FSDirectory里,甚至可以讓多臺服務器分別處理內容的各個部分,然后把索引結果放到一個隊列里,再有一臺機器去讀取索引結果隊列并合并索引結果。
  做這個示例主要是為了演示一下Lucene.net的功能,它可以對你指定的目錄里的.txt,.htm,.html文件進行全文索引,然后對其進行查詢。由于如果要索引的目錄里文件特別多特別大的話,建立索引需要花費很長的過程,所以我在示例程序里使用了異步編程,以便在建立索引的時候不阻塞界面線程。
【內容】
1、先看一個簡單例子
public void Test1()
{
 //建立一個內存目錄
 Lucene.Net.Store.RAMDirectory ramDir = new Lucene.Net.Store.RAMDirectory();

 //建立一個索引書寫器
 IndexWriter ramWriter = new IndexWriter(ramDir,new ChineseAnalyzer(), true);

 //要索引的詞,這就相當于一個個的要索引的文件
 string[] Words = {"中華人民共和國", "人民共和國", "人民","共和國"}; 

 //循環數組,創建文檔,給文檔添加字段,并把文檔添加到索引書寫器里
 Document doc = null; 
 for (int i = 0; i < words.Length; i++)
 {
  doc = new Document();
  doc.Add(Field.Text("contents", words[i]));
  ramWriter.AddDocument(doc);
 }

 //索引優化
 ramWriter.Optimize();

 //關閉索引讀寫器,一定要關哦,按理說應該把上面的代碼用try括主,在finally里關閉索引書寫器
 ramWriter.Close();

 //構建一個索引搜索器
 IndexSearcher searcher = new IndexSearcher(ramDir);

 //用QueryParser.Parse方法實例化一個查詢
 Query query = QueryParser.Parse("中華人民","contents",new ChineseAnalyzer());

 //獲取搜索結果
 Hits hits = searcher.Search(query);

 //判斷是否有搜索到的結果,當然你也可以遍歷結果集并輸出
 if (hits.Length() != 0)
  MessageBox.Show("有");
 else
  MessageBox.Show("沒有");
}
2、其它的具體看下載代碼吧。
  下載的文件里有個doc的文件夾,里面有4個文本文件,大家可以試著給那個目錄建立索引,然后搜索一下“人民”,“中華”等幾個關鍵字,看看能出來搜索結果嗎?簡單說一下示例程序,就是遍歷一個目錄,找出所有文本和網頁的文件,建立Lucene的Document文件,并索引了文件的目錄和內容,然后添加到索引器里,最后在程序執行目錄的Index子目錄里建立索引,這一部分的調用使用了異步委托。搜索的時候就是在Index目錄里檢索符合某個關鍵字的條目。
【注意】
1、建立完索引后一定要調用IndexWriter的Close方法,否則如果你要索引的目錄里的文件少于minMergeDocs的話,是不能建立索引的。
2、Field.Text的靜態方法有兩個重載版本,如果第二個參數是string的話那么這個字段既索引也存儲,如果是TextReader的話只索引不存儲,這點要搞清楚,另外在構建TextReader的時候要注意使用合適的編碼格式,否則有的文件讀出來是亂碼,建立的索引肯定也是按亂碼建立的咯。
【小節】
  其實lucene大家誰也是學學就會,關鍵要是整一個像google,baidu這樣的搜索引擎就難了,好歹這搜索引擎也是一個行業呢,所以誰有興趣,好好鉆研一下搜索行業的相關技術,沒準靠這個還能創業呢,是吧。
  再問一下,《lucence實戰》有中文版嗎?或者其它關于Lucence的中午圖書,給推薦一本。
  最后借貴地和大家討論一個問題:從長遠考慮,程序員學那項技術比較有前途?做程序也好幾年了,想找一個領域好好深入一下,以后做一個行業的領域專家。那樣才不會太累,要不什么都鼓搗,太累了,而且還不容易出成績。我列舉了幾個方向,大家幫忙分析分析,謝謝。
1、linux+Oracle(走數據庫管理的路線)
2、匯編、c底層驅動開發(據說很簡單,就那么幾個指令,學一年就精通了,不像.NET,得老跟著走)
3、ec++,kjava嵌入式開發(包括手機游戲,路由固件等開發)
4、即時通訊行業(網絡編程,包括網絡游戲的服務端編程這些)
5、搜索行業(不太了解)
6、OA、工作流(自己做一套不用編程,拖拖拽拽畫畫就能實現企業業務流程的電子化,infopath,OSS,formserver,WF的那一套)
7、.net網站開發(范圍很大,要掌握的東西太多,會的人很多,深入的很少)
8、流媒體開發(3G時代這玩意兒不知道能不能派上用場)
【參考】
idior的《Lucene.net系列》
李剛、宋偉、邱哲的《Ajax+lucene構建搜索引擎》


下載地址:
http://www.companysz.com/Files/onlytiancai/WawaSearch.rar


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 羞羞网站在线观看入口免费 | av不卡毛片| 久色亚洲 | 美女网站黄在线观看 | 色综合久久久久久久久久久 | 黄色片快播 | 亚洲欧洲日产v特级毛片 | 久久综合精品视频 | 国产成人在线免费观看视频 | 欧美一级毛片欧美一级成人毛片 | 欧美激情视频一区二区免费 | 久久久久亚洲视频 | 久久久日韩精品一区二区三区 | 精品呦女 | 免费一级特黄毛片 | 国人精品视频在线观看 | 伊人99re| 毛片电影网址 | 国产一区二精品区在线 | 91免费高清视频 | 国产1区在线 | 成人毛片免费在线 | 日韩视频―中文字幕 | 一级免费视频 | 免费网站看毛片 | 毛片视频免费播放 | 国产美女三级做爰 | 看免费黄色一级片 | 91九色蝌蚪国产 | 成年免费视频黄网站在线观看 | 亚洲白嫩在线观看 | 久久精品无码一区二区日韩av | 国产一区视频免费观看 | 色中射 | 亚洲精品欧美二区三区中文字幕 | 天天操天天骑 | 亚洲码无人客一区二区三区 | 欧美三区在线 | 日本aⅴ在线 | 看免费毛片 | 黄色片快播 |