zoukankan      html  css  js  c++  java
  • 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/
    本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
     
     
  • 相关阅读:
    浙大数据结构课后习题 练习二 7-2 Reversing Linked List (25 分)
    浙大数据结构课后习题 练习二 7-2 一元多项式的乘法与加法运算 (20 分)
    浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)
    浙大数据结构课后习题 练习一 7-1 最大子列和问题 (20 分)
    PAT Basic 1019 数字黑洞 (20 分)
    PAT Basic 1017 A除以B (20 分)
    PAT Basic 1013 数素数 (20 分)
    PAT Basic 1007 素数对猜想 (20 分)
    PAT Basic 1003 我要通过! (20 分)
    自动化运维——HelloWorld(一)
  • 原文地址:https://www.cnblogs.com/qingche/p/5019683.html
Copyright © 2011-2022 走看看