iOS- 本地文本容錯搜尋引擎2-->如何?英文(英文首字母,漢語拼音)對中文的搜尋?,ios-2--
1.前言 先閑說幾句,最近北京的霧霾真是大,嗆的我這攻城師都抗不住了。各位攻城師們一定要愛護好自己的身體!空氣好時,少坐多動。如果條件好的話,最好讓你們BOSS搞個室內空氣淨化器。因為那幾天一般的室內霧霾指數也是高的嚇人T T,哎不多說。轉本文>> 此文接本部落格上篇iOS- 如何建立索引實現本地文本搜尋引擎,允許容錯搜尋?http://www.cnblogs.com/qingche/p/4530826.html, 上次發完部落格後,很有朋友問道是否支援中文的問題,自己測試完後發現只能輸入“中文”才能搜尋到相應內容,而無法像蘋果搜尋一樣,輸入“baidu ”> 搜尋到“百度” 輸入“bd” > 搜尋到“百度” 實現效果 今天抽空把原來的本地文本搜尋引擎擴充一下,正式支援英文對 中文搜尋。關於如何建立索引實現本地文本搜尋引擎可以看上面的部落格。 今天主要分享下如何?英文(英文首字母,漢語拼音)對中文的搜尋,希望對需要的朋友有一些協助。 2.如何將中文轉成拼音,首字母 第一步用Cocoapods將PinYin架構拉進你的項目,或直接上我的Github上取—》 https://github.com/SaupClear/PinYinLib 匯入標頭檔.h#import "ChineseInclude.h"#import "PinYinForObjc.h" 基礎樣本: 核心方法
//判斷字串是否是中文if ([ChineseInclude isIncludeChineseInString:@“百度"])//然後將中文轉換成拼音NSString *pybody = [PinYinForObjc chineseConvertToPinYin:@"百度"];//同時將中文轉換成拼音首字母NSString *pyheader = [PinYinForObjc chineseConvertToPinYinHead:@“百度”];
.
3.如何整合進本地容錯搜尋引擎 將三步準備好後,我們就可以將其合成進我們的
本地搜尋引擎
在上篇部落格裡提到的,
檢索的資料倉儲初始化的位置
同時將拼音和拼音首字母加入關聯for (MenuItemObject *objmenu in allmenus) { //檢測是否是有中文 if ([ChineseInclude isIncludeChineseInString:objmenu.displayname]) { //轉換為拼音,和拼音首字母 NSString *pybody = [PinYinForObjc chineseConvertToPinYin:objmenu.displayname]; NSString *pyheader = [PinYinForObjc chineseConvertToPinYinHead:objmenu.displayname]; //將其索引關聯上本地搜尋引擎 [[PermissiveResearchDatabase sharedDatabase] addRetainedObjet:objmenu forKey:pybody]; [[PermissiveResearchDatabase sharedDatabase] addRetainedObjet:objmenu forKey:pyheader]; } [[PermissiveResearchDatabase sharedDatabase] addRetainedObjet:objmenu forKey:objmenu.displayname];}
之後即可支援英文baidu , bd 對-> 中文的搜尋 關於本地搜尋引擎的實現詳情,可以查看我上篇部落格
iOS- 如何建立索引實現本地文本搜尋引擎,允許容錯搜尋?http://www.cnblogs.com/qingche/p/4530826.html, 實現效果 有什麼問題歡迎留言,有空我會一起回答! 作者: 清澈Saup
出處: http://www.cnblogs.com/qingche/
本文著作權歸作者和部落格園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文串連。