Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 谷歌Chrome Omnibox自动完成是如何工作的?_Algorithm_Google Chrome_Autocomplete_Omnibox - Fatal编程技术网

Algorithm 谷歌Chrome Omnibox自动完成是如何工作的?

Algorithm 谷歌Chrome Omnibox自动完成是如何工作的?,algorithm,google-chrome,autocomplete,omnibox,Algorithm,Google Chrome,Autocomplete,Omnibox,下面文章中的注释对于理解部分算法特别有帮助 但问题仍然存在。我在Chrome上做了一些实验: 当我输入“eddit”时,它只会对一般谷歌搜索建议“reddit”,而如果我完全输入“reddit”,历史reddit url会弹出 如果我输入“facebook”或“google”或“youtube”的子字符串,则URL会成功弹出。说“ceb”、“ogl”、“utu”。因此,trys不应是此处使用的(唯一)数据结构 此外,我知道Chrome正在使用sqlite的fts进行全文搜索(sqlite属性f

下面文章中的注释对于理解部分算法特别有帮助

但问题仍然存在。我在Chrome上做了一些实验:

  • 当我输入“eddit”时,它只会对一般谷歌搜索建议“reddit”,而如果我完全输入“reddit”,历史reddit url会弹出

  • 如果我输入“facebook”或“google”或“youtube”的子字符串,则URL会成功弹出。说“ceb”、“ogl”、“utu”。因此,trys不应是此处使用的(唯一)数据结构

  • 此外,我知道Chrome正在使用sqlite的fts进行全文搜索(sqlite属性fts 3/4到Google)。所以我猜Chrome在sqlite中使用了url的反向索引

    我的问题是:

    Chrome如何自动完成“utu”->“youtube”?(基于我的本地历史URL)

  • 我知道后缀数组/树可以有效地匹配子字符串。但找到“youtube”这个词是线性的
  • 我想定制的标记器(针对fts3/4)可以实现这一点。说“谷歌”>{“g”,…,“gle”,…}。但生成的代币太多了