如何在大型系統中提供拼音檢索服務

2021-05-22 23:01:26 字數 652 閱讀 4732

最近有這麼乙個需求,客戶要求在選擇一些業務資料時,能提供類似谷歌的拼音檢索功能,由於目前系統中的業務資料都是儲存在資料,而且

資料量都比較大,目前主要考慮兩種實現方式:

第一種通過構建乙個包含有所有業務資料的關鍵字的拼音庫,使用者輸入拼音時,先在拼音庫中

進行檢索,再在對應的資料庫中查詢記錄。

第二種方式直接在資料庫中對需要查詢的內容先進行拼音的轉換。

第三種方式對在客戶端展示的資料進行全量載入,目前由於資料量比較大,是提供非同步載入的方式。

這三種方式都存在一些問題,第一種構建乙個拼音庫,需要在目前系統中初始化構建乙個龐大的拼音庫,並且在系統各個輸入業務資料的入口,

都要進行處理,對於龐大的系統而已,工作量很大,帶來的風險很高。第二種方式在資料庫中對查詢的內容進行拼音轉換,由於目前oracle並

未提供內部函式支援中文和拼音的轉換,所以需要提供自定義函式,在查詢時對需要查詢的字段內容進行轉換,編寫自定義函式經過測試,發現

在小資料量的時候,可以解決問題,一旦遇到稍大的一點的資料表,效能瓶頸就暴露出來了。第三種方式同樣會對系統帶來考驗,試想下,幾

萬條資料同時載入到客戶端,客戶端需要承受很大的壓力。特別是大併發的時候,很容易引起系統癱瘓。

目前還在考慮其它的解決方案,同時看下能否對第二種方案進行一些改進,以達到最終的效果。

如何在面試中提問

相信參加過面試的小夥伴們,在面試接近尾聲的時候面試官一般都會問 你有什麼想問的?有不少小夥伴在遇到這樣的情形的時候一般都會感到突然,一時間卻忘記該提什麼問題,或者怎樣提問題。接下來我就和大家分享一下在面試中我們應該怎樣提問題。首先我們需要明確的是,這個環節一般在面試的尾聲。根據本人有限的經驗分析,一...

如何在Excel中提取小數點後面的數字?

excel中,如果某個單元格中包含乙個帶小數,要用公式提取該數值小數點後面的數字,例如a1單元格中包含乙個數值 59178.68 在b1單元格中輸入下面的公式 right a1,len a1 find a1 公式返回結果 68 要取得純小數,還可用mod函式 mod abs a1 1 對於 5917...

程式設計師如何在工作中提公升自己?

很多任務程師抱怨平時的工作總是crud的任務,總是認為這些工作不會有成長的機會或無法提公升,其實這種是眼高手低的現象,crud也可以學到更多 做到更好!下面從幾方面來來細說一下現象及如何提公升 工作任務很簡單,使用封裝好的jar或工具類,甚至托托控制項就可以完成功能,然後就教工完事了。你有沒有想過這...