docs: update default-content.md

更新默认文件内容
This commit is contained in:
yanglbme 2019-11-04 19:11:34 +08:00
parent bc7751dc02
commit fb85c7d546

View File

@ -1,10 +1,10 @@
# Google 搜索的即时自动补全功能究竟是如何“工作”的? # 示例文章:Google 搜索的即时自动补全功能究竟是如何“工作”的?
> Google 搜索自动补全功能的强大,相信不少朋友都能感受到,它帮助我们更快地“补全”我们所要输入的搜索关键字。那么,它怎么知道我们要输入什么内容?它又是如何工作的?在这篇文章里,我们一起来看看。 > Google 搜索**自动补全功能**的强大,相信不少朋友都能感受到,它帮助我们更快地“补全”我们所要输入的搜索关键字。那么,它怎么知道我们要输入什么内容?它又是如何工作的?在这篇文章里,我们一起来看看。
## 使用自动补全 ## 使用自动补全
Google 搜索的自动补全功能可以在 Google 搜索应用的大多数位置使用,包括 [Google](https://www.google.com/) 主页、适用于 IOS 和 Android 的 Google 应用,我们只需要在 Google 搜索框上开始键入关键字,就可以看到联想词了。 Google 搜索的自动补全功能可以在 Google 搜索应用的大多数位置使用,包括 [Google](https://www.google.com/) 主页、适用于 IOS 和 Android 的 Google 应用,我们只需要在 Google 搜索框上开始键入关键字,就可以看到联想词了。
![](./images/juej.gif) ![](https://gitee.com/yanglbme/wxmd-editor/raw/master/assets/images/juej.gif)
在上图示例中,我们可以看到,输入关键字 `juej`Google 搜索会联想到“掘金”、“掘金小册”、“绝句”等等,好处就是,我们无须输入完整的关键字即可轻松完成针对这些 topics 的搜索。 在上图示例中,我们可以看到,输入关键字 `juej`Google 搜索会联想到“掘金”、“掘金小册”、“绝句”等等,好处就是,我们无须输入完整的关键字即可轻松完成针对这些 topics 的搜索。
@ -19,7 +19,7 @@ Google 官方将自动补全功能称之为“预测”,而不是“建议”
另外,这些“预测”也会随着我们键入的关键字的变更而更改。例如,当我们把键入的关键字从 `juej` 更改为 `juex` 时,与“掘金”相关的预测会“消失”,同时,与“觉醒”、“决心”相关联的词会出现。 另外,这些“预测”也会随着我们键入的关键字的变更而更改。例如,当我们把键入的关键字从 `juej` 更改为 `juex` 时,与“掘金”相关的预测会“消失”,同时,与“觉醒”、“决心”相关联的词会出现。
![](./images/juex.gif) ![](https://gitee.com/yanglbme/wxmd-editor/raw/master/assets/images/juex.gif)
## 为什么我们看不到某些联想词? ## 为什么我们看不到某些联想词?
如果我们在输入某个关键字时看不到联想词,那么表明 Google 的算法可能检测到: 如果我们在输入某个关键字时看不到联想词,那么表明 Google 的算法可能检测到:
@ -33,7 +33,7 @@ Google 拥有专门设计的系统,可以自动捕获不适当的预测结果
我们作为 Google 搜索的用户,如果认定某条预测违反了相关的搜索自动补全政策,可以进行举报反馈,点击右下角“**举报不当的联想查询**”并勾选相关选项即可。 我们作为 Google 搜索的用户,如果认定某条预测违反了相关的搜索自动补全政策,可以进行举报反馈,点击右下角“**举报不当的联想查询**”并勾选相关选项即可。
![](./images/feedback.gif) ![](https://gitee.com/yanglbme/wxmd-editor/raw/master/assets/images/feedback.gif)
## 如何实现自动补全算法? ## 如何实现自动补全算法?
目前Google 官方似乎并没有公开搜索自动补全的算法实现,但是业界在这方面已经有了不少研究。 目前Google 官方似乎并没有公开搜索自动补全的算法实现,但是业界在这方面已经有了不少研究。
@ -52,7 +52,7 @@ Google 拥有专门设计的系统,可以自动捕获不适当的预测结果
### 前缀树实现 ### 前缀树实现
通常来说,许多词汇都以相同的前缀开头,比如 `need`、`nested` 都以 `ne` 开头,`seed`、`speed` 都以 `s` 开头。要是为每个单词分别存储公共前缀似乎很浪费。 通常来说,许多词汇都以相同的前缀开头,比如 `need`、`nested` 都以 `ne` 开头,`seed`、`speed` 都以 `s` 开头。要是为每个单词分别存储公共前缀似乎很浪费。
![](./images/prefixtree.png) ![](https://gitee.com/yanglbme/wxmd-editor/raw/master/assets/images/prefixtree.png)
前缀树是一种利用公共前缀来加速补全速度的数据结构。前缀树在节点树中排列一组单词,单词沿着从根节点到叶子节点的路径存储,树的层次对应于前缀的字母位置。 前缀树是一种利用公共前缀来加速补全速度的数据结构。前缀树在节点树中排列一组单词,单词沿着从根节点到叶子节点的路径存储,树的层次对应于前缀的字母位置。
@ -63,7 +63,7 @@ Google 拥有专门设计的系统,可以自动捕获不适当的预测结果
有没有一种方法可以更加节省存储空间呢?有的,那就是 DFA。 有没有一种方法可以更加节省存储空间呢?有的,那就是 DFA。
![](./images/dfa.png) ![](https://gitee.com/yanglbme/wxmd-editor/raw/master/assets/images/dfa.png)
在上面的例子中,单词 `need`、`nested`、`seed` 和 `speed` 仅由 9 个节点组成,而上一张图中的前缀树包含了 17 个节点。 在上面的例子中,单词 `need`、`nested`、`seed` 和 `speed` 仅由 9 个节点组成,而上一张图中的前缀树包含了 17 个节点。
@ -82,5 +82,4 @@ Google 拥有专门设计的系统,可以自动捕获不适当的预测结果
欢迎关注我的公众号“Doocs开源社区”原创技术文章第一时间推送。 欢迎关注我的公众号“Doocs开源社区”原创技术文章第一时间推送。
![](https://gitee.com/yanglbme/wxmd-editor/raw/master/assets/images/qrcode.jpg)
![](./images/qrcode.jpg)