iOS- 本地文本容錯搜索引擎2-->如何實現英文(英文首字母,漢語拼音)對中文的搜索?

 

1.前言  

先閒說幾句,最近北京的霧霾真是大,嗆的我這攻城師都抗不住了。各位攻城師們必定要愛護好本身的身體!空氣好時,少坐多動。
若是條件好的話,最好讓大家BOSS搞個室內空氣淨化器。由於那幾天通常的室內霧霾指數也是高的嚇人T T,哎很少說。
轉正文>>
 
此文接本博客上篇
iOS- 如何創建索引實現本地文本搜索引擎,容許容錯搜索?
 
上次發完博客後,頗有朋友問道是否支持中文的問題,
本身測試完後發現只能輸入「中文」才能搜索到相應內容,而沒法像蘋果搜索同樣, 輸入「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- 如何創建索引實現本地文本搜索引擎,容許容錯搜索?
 
 
實現效果
 
 
 
 
 
 
有什麼問題歡迎留言,有空我會一塊兒回答!
 
做者:  清澈Saup
出處:  http://www.cnblogs.com/qingche/
本文版權歸做者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。
 
相關文章
相關標籤/搜索