PHP-如何通过全拼音和简写拼音实现输入自动提示结果功能

PHP-如何通过全拼音和简写拼音实现输入自动提示结果功能

想挽留 发布于 2017-03-14 字数 49 浏览 1232 回复 3

请教需要用到哪些技术手段,实现高效的索引。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

偏爱自由 2017-10-03 3 楼

我们用Solr,也在弄这个。
两种思路:一种是建倒排索引,建索引时添加拼音字段然后Prefix查询;一种是在内存中使用词典树,Solr提供了词典树变种(三叉搜索树和AC自动机),可选择对拼音额外再建一个树,然后把中文词组用链表或数组挂在节点上。

浮生未歇 2017-09-13 2 楼

简单介绍下我们这块的实现原理,对中文数据源转拼音 + Suggest检索。

自动提示我们用的是sphinx提供服务,数据源基于mysql,中文转拼音使用开源的拼音库。

通常实现一个Suggest功能,需要对要检索提示的内容字段做前缀匹配索引。现在要加入拼音搜索,做法是给数据源title字段补充一个类似别名/同义词的alias字段,该字段用来存放转换成拼音后的内容,这样用户不管输入的是 "博客", "boke", "bk" 任意一个都能找到id为1的数据。 大概实现原理就是这样,希望大家也能分享下其他平台的类似功能。

例如索引数据源:

Id   Title    Alias  
---  -------  --------- 
1    博客     boke bk
浮生未歇 2017-06-11 1 楼

必须是三叉树了

这是微软的基于三叉树的自动完成实现,你可以参考一下

http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/

这是国内的朋友写的基于三叉树一个示例:http://blog.csdn.net/foamflower/article/details/6048680