本发明涉及拼音搜索,具体为一种拼音搜索系统。
背景技术:
1、当前拼音模糊搜索方案主流方案都是基于搜索引擎如solr、elasticsearch,在数据量没那么大,存储介质使用mysql和redis情况下拼音搜索的速度较慢、搜索结果不够全面,数据库模糊搜索速度比较慢,使用前缀树构造字符串的拼音搜索不够全面。
2、redis存储方面有可能占用较多,字符串比较长时利用后缀树思想转化为多个字符串可能过长,若转换出来的拼音字符串前缀相似度低,则占用新的节点存储。
技术实现思路
1、本发明的目的在于提供一种拼音搜索系统,以解决上述背景技术中提出的问题。
2、为了解决上述技术问题,本发明提供如下技术方案:一种拼音搜索系统,通过构建数据库和redis存储组件,实现拼音的高速模糊搜索;
3、将所有待搜索数据缓存rmap,唯一键为id;
4、将汉字转化为拼音全拼,以及首字母拼写;
5、首字母以及全拼以字为单位按后缀树思想生成多个字符串;
6、分解后字符串存储在前缀树中,每个节点存储为字符串,为所指向数据的id拼接。
7、优选地,所述前缀树存储字符串,实现以下能力;
8、对输入字符出串的全拼进行模糊匹配;
9、对输入字符串的首字母拼写进行模糊匹配;
10、对输入字符串的非前缀字符进行模糊匹配。
11、优选地,将汉字转化为全拼和首字母拼写之后,将所有数据缓存;使用后缀树的思想生成字符串,将这些字符串存入前缀树中。
12、优选地,通过所述前缀树所有路径节点存储该原字符串id拼接,将前缀树存入redis中。
13、优选地,通过将被搜索数据缓存到rmap中,搜索是只需要定位到该条数据id。
14、优选地,按照后缀树的思想分解原字符串拼音,保证在前缀树匹配时字符串中每个汉字都有作为缀的可能。
15、优选地,该系统通过同时存入前缀树是,所有字符串路径节点中都存有该原字符串id用于查询数据。
16、优选地,该系统通过输入字符串查询,以数据库和redis进行存储的拼音模糊匹配,定位到该节点,从缓存查询结果。
17、与现有技术相比,本发明所达到的有益效果是:
18、本发明通过利用后缀树思想,以单个汉字为单位,将拼音进行分解为多个字符串,存储于前缀树中,通过输入字符串查询,以数据库和redis进行存储的拼音模糊匹配,定位到该节点,从缓存查询结果,利用后缀树思想,以单个汉字为单位,将拼音进行分解为多个字符串,存储于前缀树中,能够快速查找到储存于前缀树中的字符,解决了数据库模糊搜索速度较快和拼音搜索不够全面效果,实现了该系统的对拼音的高速模糊搜索效果。
19、通过前缀树存储字符对输入字符进出串的模糊匹配,对输入字符的首字拼写进行模糊匹配,对输入字符串的前缀字符进行模糊匹配,防止redis存储方面有可能占用较多导致,字符串比较长时利用后缀树思想转化为多个字符串可能过长与若转换出来的拼音字符串前缀相似度低,则占用新的节点存储,提高了此装置的实用性。
1.一种拼音搜索系统,其特征在于通过构建数据库和redis存储组件,实现拼音的高速模糊搜索;
2.根据权利要求1所述的一种拼音搜索系统,其特征在于:所述前缀树存储字符串,实现以下能力;
3.根据权利要求1所述的一种拼音搜索系统,其特征在于将汉字转化为全拼和首字母拼写之后,将所有数据缓存;使用后缀树的思想生成字符串,将这些字符串存入前缀树中。
4.根据权利要求1所述的一种拼音搜索系统,其特征在于包括:通过所述前缀树所有路径节点存储该原字符串id拼接,将前缀树存入redis中。
5.根据权利要求4所述的一种拼音搜索系统,其特征在于通过将被搜索数据缓存到rmap中,搜索是只需要定位到该条数据id。
6.根据权利要求1所述的一种拼音搜索系统,其特征在于包括:按照后缀树的思想分解原字符串拼音,保证在前缀树匹配时字符串中每个汉字都有作为缀的可能。
7.根据权利要求4所述的一种拼音搜索系统,其特征在于该系统通过同时存入前缀树是,所有字符串路径节点中都存有该原字符串id用于查询数据。
8.根据权利要求4所述的一种拼音搜索系统,其特征在于该系统通过输