Lucene.Net 如何與 DB 合作

摘要:Lucene.Net 如何與 DB 合作

當我們使用 Lucene.Net 為我們編制索引時 , 若要顯示搜尋結果的資料 , 仍然必須將完整資料儲存於索引之中 , 也就是之前文章中常出現的Field.Stored.Yes,可是若有些資料是需要 Data Mining 的 , 若將之儲存於 Lucene.Net 的索引之中 , 勢必增加 Data Mining 的困擾 , 因此需要一個可以整合兩者的方式 . 

 

Lucene.Net 的優勢在於全文搜尋的效能 , 因此在建立索引之初 , 將需要全文搜索的欄位 , 全部統一儲存在索引的其中一個欄位 , 而我們在資料庫的資料都會有一個 key 值 , 因此在 Lucene.Net 索引中特地建立一個欄位來保留這個 Key 值 , 例如一個 Table 有一個 key 值 , Title , Content 等欄位 , 我們可以將 Title , Content 等欄位整合成同一個欄位 , (以Text 命名 ) 儲存在索引中 , 而這個 Key 值則獨立成為另外一個欄位 , 當我們搜尋 Lucene.Net 的 Text 欄位 , 藉此獲得 Key 值 , 再利用這個 Key 值到 DB 去取得我們所需要的資料 , 而實際儲存資料的腳色其實還是 DB , 同時也保留了 Data Mining 的彈性空間