当前位置: 欧洲杯竞猜 > 计算机知识 > 正文

对中文的搜寻,怎么样树立目录达成地点文件寻

时间:2019-08-15 23:37来源:计算机知识
iOS- 如何建立索引实现本地文本搜索引擎,允许容错搜索?,ios-索引 iOS- 本地文本容错搜索引擎2--如何实现英文(英文首字母,汉语拼音)对中文的搜索?,ios-2--   1.前言 实现一个本地

iOS- 如何建立索引实现本地文本搜索引擎,允许容错搜索?,ios-索引

iOS- 本地文本容错搜索引擎2-->如何实现英文(英文首字母,汉语拼音)对中文的搜索?,ios-2--

 

1.前言  

实现一个本地搜索引擎,允许容错搜索,也就是搜索结果不需要和搜索的关键字完全精准匹配。比如,搜索”eric wang“,搜索结果可以包括Erica Watts等等。搜索效率十分高. 这里我们需要用到作者:Jerome Morissard的Lib,大家可以进我的github下载. 欧洲杯竞猜 1    

1.前言  

先闲说几句,最近北京的雾霾真是大,呛的我这攻城师都抗不住了。各位攻城师们一定要爱护好自己的身体!空气好时,少坐多动。 如果条件好的话,最好让你们BOSS搞个室内空气净化器。因为那几天一般的室内雾霾指数也是高的吓人T T,哎不多说。 转正文>>   此文接本博客上篇 iOS- 如何建立索引实现本地文本搜索引擎,允许容错搜索?   上次发完博客后,很有朋友问道是否支持中文的问题, 自己测试完后发现只能输入“中文”才能搜索到相应内容,而无法像苹果搜索一样,欧洲杯竞猜,输入“baidu ”> 搜索到“百度” 输入“bd” > 搜索到“百度”   实现效果 欧洲杯竞猜 2     欧洲杯竞猜 3   今天抽空把原来的本地文本搜索引擎扩充一下,正式支持英文对 中文搜索。 关于如何建立索引实现本地文本搜索引擎可以看上面的博客。   今天主要分享下如何实现英文(英文首字母,汉语拼音)对中文的搜索,希望对需要的朋友有一些帮助。    

1.前言  

先闲说几句,最近北京的雾霾真是大,呛的我这攻城师都抗不住了。各位攻城师们一定要爱护好自己的身体!空气好时,少坐多动。

如果条件好的话,最好让你们BOSS搞个室内空气净化器。因为那几天一般的室内雾霾指数也是高的吓人T T,哎不多说。

转正文>>

 

此文接本博客上篇

iOS- 如何建立索引实现本地文本搜索引擎,允许容错搜索?

http://www.cnblogs.com/qingche/p/4530826.html,

 

上次发完博客后,很有朋友问道是否支持中文的问题,

自己测试完后发现只能输入“中文”才能搜索到相应内容,而无法像苹果搜索一样,输入“baidu ”> 搜索到“百度” 输入“bd” > 搜索到“百度”

 

实现效果

欧洲杯竞猜 4

 

 

欧洲杯竞猜 5

 

今天抽空把原来的本地文本搜索引擎扩充一下,正式支持英文对 中文搜索。

关于如何建立索引实现本地文本搜索引擎可以看上面的博客。

 

今天主要分享下如何实现英文(英文首字母,汉语拼音)对中文的搜索,希望对需要的朋友有一些帮助。

 

 

2.PermissiveResearch的使用  

2.如何将中文转成拼音,首字母  

 第一步 用Cocoapods将PinYin框架拉进你的项目, 或直接上我的Github上取—》    导入头文件.h #import "ChineseInclude.h" #import "PinYinForObjc.h"   基础示例:  核心方法

//判断字符串是否是中文
if ([ChineseInclude isIncludeChineseInString:@“百度"])
//然后将中文转换成拼音
NSString *pybody = [PinYinForObjc chineseConvertToPinYin:@"百度"];
//同时将中文转换成拼音首字母
NSString *pyheader = [PinYinForObjc chineseConvertToPinYinHead:@“百度”];

.

2.如何将中文转成拼音,首字母  

 第一步

用Cocoapods将PinYin框架拉进你的项目,

或直接上我的Github上取—》 

 

导入头文件.h

#import "ChineseInclude.h"

#import "PinYinForObjc.h"

 

基础示例:

 核心方法

//判断字符串是否是中文
if ([ChineseInclude isIncludeChineseInString:@“百度"])
//然后将中文转换成拼音
NSString *pybody = [PinYinForObjc chineseConvertToPinYin:@"百度"];
//同时将中文转换成拼音首字母
NSString *pyheader = [PinYinForObjc chineseConvertToPinYinHead:@“百度”];

.

 

2.1.导入核心.h文件  

欧洲杯竞猜 6

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- 如何建立索引实现本地文本搜索引擎,允许容错搜索?     实现效果 欧洲杯竞猜 7     欧洲杯竞猜 8        有什么问题欢迎留言,有空我会一起回答!   作者: 清澈Saup
出处: 
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。    

本地文本容错搜索引擎2--如何实现英文(英文首字母,汉语拼音)对中文的搜索?,ios-2-- 1.前言 先闲说几句,最近北京的雾霾真是大,...

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,

 

 

实现效果

欧洲杯竞猜 9

 

 

欧洲杯竞猜 10 

 

 

 

有什么问题欢迎留言,有空我会一起回答!

 

作者: 清澈Saup
出处: http://www.cnblogs.com/qingche/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。

 

 

2.2.在文本输入控件发生变化时我们开始实现文本检索  

也就是在下面这个代理方法每次被调用时,我们开始检索 欧洲杯竞猜 11  

2.3.需要检索的数据仓库初始化  

#pragma mark 检索数据仓库初始化
/**
 *  检索数据初始化
 */
-(void)rebuildDatabase{

    //你自己代码里需要检索的数据
    NSArray *allmenus = self.mainDelegate.gbdata.objMenu.MenuItemArray;

    //将自己代码里需要检索的数据对象添加进检索数据仓库,并且关联上name

    for (MenuItemObject *objmenu in allmenus) {

        //第一个参数为你需要检索的对象 obj ,第二个为你对象obj.name (例如根据 name.检索)
        [[PermissiveResearchDatabase sharedDatabase] addRetainedObjet:objmenu forKey:objmenu.displayname];
    }
}

 2.4.开始检索  

 检索十步走  

    //1.首先清空搜索结果数组
    [self.arraySearchMenu removeAllObjects];

    //2.将文本控制用户输入的字符进行简单处理
    NSString *final = [textField.text stringByReplacingCharactersInRange:range withString:string];


    //3.开始检索
    NSLog(@"Start search by matrix");

    //4.消除所有
    [[ScoringOperationQueue mainQueue] cancelAllOperations];

    //5.初始化
    ExactScoringOperation *ope = [[ExactScoringOperation alloc] init];

    //6.要检索的字符串赋值
    ope.searchedString = final;

    //7.调用检索block 返回检索到的结果
    SearchCompletionBlock block = ^(NSArray *results) {

        dispatch_async(dispatch_get_main_queue(), ^{

            //8.注意:这里统一检索出来的对象 都是PermissiveObject
            //你自己需要的检索出来真在的对象是在PermissiveObject.refencedObject里
            NSMutableArray *permissiveObj = [NSMutableArray arrayWithArray:results];

            //9.取出检索到你每个需要的数据 然后添加进检索结果的数据
            for (PermissiveObject *perobj in permissiveObj) {

                MenuSearchObject *obj=[[MenuSearchObject alloc]init];

                MenuItemObject *objMenu = perobj.refencedObject;
                //测试log
                NSLog(@"%@",objmenu.displayname);

                obj.menuid=[NSNumber numberWithInteger:objMenu.menuid.integerValue];

                [self.arraySearchMenu addObject:obj];   // add filter menu objection

            }
            //10.刷新显示检索结果的tableView
            [self.searchTableview reloadData];

            NSLog(@"End search by matrix");

        });

    };


    //检索完成
    [ope setCustomCompletionBlock:block];
    //添加操作 End.
    [[ScoringOperationQueue mainQueue] addOperation:ope];

 

如果还有什么不明白欢迎在下面留言,有时间的我回一一回复,谢谢大家。     作者: 清澈Saup
出处: 
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。       

如何建立索引实现本地文本搜索引擎,允许容错搜索?,ios-索引 1.前言 实现一个本地搜索引擎,允许容错搜索,也就是搜索结果不需要...

编辑:计算机知识 本文来源:对中文的搜寻,怎么样树立目录达成地点文件寻

关键词: 欧洲杯竞猜