一、要求 項目功能方便客戶查詢化學品信息業務現狀客戶查詢方式多樣化,如通過名稱查詢、同義詞查詢、CAS號查詢等目前數據量是1千萬數據顯示形式比較單調業務目標精確滿足客戶查詢需求豐富數據顯示形式查詢速度控制在1-2s 二、解決方法 分析客戶行為發現客戶有一半概率是通過產品名稱查詢,一半概率是通過其他方 ...
一、要求
項目功能
方便客戶查詢化學品信息
業務現狀
客戶查詢方式多樣化,如通過名稱查詢、同義詞查詢、CAS號查詢等
目前數據量是1千萬
數據顯示形式比較單調
業務目標
精確滿足客戶查詢需求
豐富數據顯示形式
查詢速度控制在1-2s
二、解決方法
分析客戶行為發現客戶有一半概率是通過產品名稱查詢,一半概率是通過其他方式查詢。同時客戶在查詢列表頁停留的時間不超5分,因此我們採用Sql Server查詢+ Lucene.net,實現該查詢系統
採用技術
ASP.NET WebForm+Sql Server+IIS+ Lucene.net
使用MVP設計模式
硬體設備:一臺web伺服器+一臺資料庫伺服器
使用策略
對查詢的產品進行預處理,並對查詢欄位做索引
先使用資料庫方式查詢,如果查不到切換到Lucene查詢
對查詢結果緩存5分鐘。如果5分內進行相同的查詢,直接使用緩存數據
從緩存結果中,抽取二次查詢條件,同時對相同供應商進行去重
統計結果採用ajax非同步載入,所有供應商的統計數據只發送一次請求
三、以後需要改進的地方 Lucene.net在查詢前需要做索引,壓縮索引比較耗費資源和時間,目前採用的定時壓縮策略。每天晚上進行重新製作索引,導致數據不能實時同步,鑒於目前的業務情況,該頻率可以接受。實時性要求比較強的項目,可以使用Lucene的記憶體實時索引和離線索引互相配合使用,這樣的缺點是比較耗資源