站內搜尋 分詞(二元 盤古)

2022-02-17 20:18:45 字數 1164 閱讀 9573

一般的**中都有站內搜尋,如果使用like去做,效率就會很低。

所以,lucene.net(搜尋引擎核心)就會被大家所採用。

一、分詞

分詞是核心的演算法,lucene.net本身是不提供分詞演算法的。

示例**:

//analyzer analyzer = new panguanalyzer();//盤古分詞

//analyzer analyzer = new cjkanalyzer(); //二元分詞

//analyzer analyzer = new standardanalyzer();//一元分詞

tokenstream tokenstream = analyzer.tokenstream("", new stringreader(textbox1.text));

lucene.net.analysis.token token = null;

while ((token = tokenstream.next()) != null)

一元分詞演算法(standardanalyzer)

將中文子符一一分割,英文本元以空格、標點分割。 效果如圖 1-1

二元分詞演算法(cjkanalyzer)

將中文字元每兩個組合,英文本元以空格、標點分割。效果如圖 1-2

網上提供的是兩個類:cjkanalyzer.cs、cjktokenizer.cs  都繼承analyzer,多型的好處體現出來了,直接拷到自己的專案中使用。

盤古分詞(比較智慧型)

先看效果如圖 1-3

網上提供了開源專案,盤古分詞v1.2.0.0.zip 解壓,pangudictionaries.zip中檔案新增到專案中新建資料夾(dict)中,專案中全選,屬性視窗中:複製到輸出目錄,選擇如果較新則複製;還要引用類庫:pangu.lucene.analyzer.dll、pangu.dll

寫下這些以便以後使用到...

站內搜尋 Lucene 盤古分詞

為了方便的學習站內搜尋,下面我來演示乙個mvc專案。1.首先在專案中 新增引入 三個程式集和 dict 資料夾,並新建乙個 分詞內容存放目錄 2.建立search控制器,並轉到index介面寫入如下內容 ps vs有問題,波浪號由他去吧,後台語句 建立索引語句 public actionresult...

mysql站內搜尋 Sphinx站內搜尋

一 sphinx流程 mysql資料 sphinx 索引資料 二 sphinx概述 三 sphinx使用地方 1 中的搜尋 站內搜尋 2 系統後台中的搜尋 四 為什麼要使用sphinx 當資料超過100w時,我們需要使用第三方工具,sphinx。1 做搜尋時當資料量大單純的mysql搜尋比較慢 如果...

ASP站內搜尋

處理程式 case 品牌 str select from car where car pinpai like ss order by car id desc set rs db.execute str 編號汽車名稱 型號樣式 廠家汽車品牌 提交日期 do while not rs.eof rs ca...