程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於對sql2000查詢結果進行相關度排序的測試

關於對sql2000查詢結果進行相關度排序的測試

編輯:關於PHP編程

sql2000的查詢結果進行相關度排序,聽起來好象很吸引人,不過真的是可以實現的。
上午上網看到了一篇利用微軟index server來做全文查詢的文章(這個以前也看到過,在計算機管理中也自帶了這樣一個查詢功能)
我的IIS默認web服務器在g:/wwwroot下其中有10萬多的html文檔
測試:strSearch = "SELECT DocTitle, Path, FileName, Characterization, Size,write,RANK" & _
" FROM SCOPE()" & _
" WHERE CONTAINS ('" & Request.Form("txtSearchFor") & "') ORDER BY RANK desc" 還進行了相關度的排序,我沒有做時間的具體開銷
的計算,不過給人的感覺還可以接受,在翻頁的時候就非常快了。不過最大的缺點好象就是只能索引靜態頁面了。
下午我把以前的一個50多萬條記錄(主要是歌曲名和歌手名)的數據庫在sql2000做了索引,晚上就可以開始測試了。
測試一: "select top 26 * from song1 where contains(songtitle,'愛')",對結果沒有進行任何的處理,只是按照ID的升續排列
時間開銷基本上維持在0.016s,速度是很讓人滿意的,至少感覺不到慢。
測試二:利用rank值進行了相關度的排序,"order by rank desc" or "order by rank asc",查詢結果在排序的質量上讓人滿意,都比較
准確的,不管是查詢時使用 or 或者and進行多關鍵字的排序都還可以的,不過時間的開銷讓我受不了,居然在6s到8s之間,
而且cpu也占用比較高
我看到網上其他的搜索的相關度排序都比較快的,開源的Lucene我沒有研究過,因為我不懂java。
不過我想如果在索引的時候對每個關鍵字進行相關度的運算查詢起來應該不會慢的啊,這個我也感到郁悶。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved