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/
    本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
     
     
  • 相关阅读:
    rabbitmq 学习6rabbitmq基础
    使用Sqlserver事务发布实现数据同步
    rabbitmq 学习2安装
    window server 2003 下安装squid
    rabbitmq 学习3初试1
    rabbitmq 学习5server管理
    RabbitMQ: high performance messaging solution
    AMQP和RabbitMQ入门
    rabbitmq 学习1AMQP介绍
    [解题报告]11689 Soda Surpler
  • 原文地址:https://www.cnblogs.com/qingche/p/5019683.html
Copyright © 2011-2022 走看看