百度的搜索拼音联想功能是大致上的原理是怎样的呢 谢谢!
在百度中 输入guangzhou下方就会提示广州、广州新闻。我在想百度是不是将一些热门关键字,然后用一个字段记住这些关键字的拼音;搜索的时候就直接查这个表。如果是拼音,就模糊匹配这个拼音标示列。完成匹配后将结果返回。这些只是我的想象,好像当中还有关键字权重机制。谷歌找不到相关资料;是不是有其它方式实现我没想到的呢。求助大侠 谢谢!
回复讨论(解决方案)
百度搜索时的下拉菜单 原理是一样的 ,再具体就是搜索技术了,不懂了
又到老徐showtime了...
我觉得你的想法应该是正确的.
一个小功能,但做起来是很复杂的
1.联想功能需要数据库,当然小型的写个文档也行了
2.每字联想还要ajax
不用百毒,但我上gg的时候,这个功能几乎每次都被firefox提示页面响应迟缓
可以理解,因为经过某巨型过滤器的原因,所以我用gg都是关闭这个功能的
写这几句没什么特别意思,只是提醒你虽然看上去很美,但还是离不开硬件支持的,慎用花哨的东西
原理上没有问题,实现起来有点麻烦
如果用 ajax 实现,那么速度是一个问题(本地测试时不会有问题)
所以百度为了提高速度,会让你安装“百度工具条”由控件完成
为什么装了百度工具条能够提高速度呢
前阵子和公司搜索部的人打了很多交到,了解了搜索引擎的工作大致原理。
搜索引擎内部有很多词表:
停词表,建义词表,同义词表、汉字-拼音的词表、suggest。
当你在搜索引擎上输入一个中文短句,搜索引擎首先会进行分词,然后将这些词,分别去上面提到的几个词表中查找有没有相关联的信息。如你所说的,就会去查找拼音-汉字的词表。遇到guangzhou = 广州,就会自动翻译过来。然后优先拿广州去进行搜索。
当你输入一个错误词后,可能会被搜索引擎的suggest纠正过来并提示你:您要找的是不是xxx?
其实上面只是搜索引擎处理搜索请求的其中一个分支,一次搜索会并行进行很多请求。
比如你在搜索引擎输入个短句。
搜索引擎首先会确定要搜索的内容:
1 整句
2 标准分词(可以理解为按中文语法分词)
3 自然分词(按单字、空格、标点进行分词)
...
然后分表拿每个分支,上面提到的那些辅助的词表,优化将要搜索的内容。
几个分支同时请求,拿到多个结果集。
接下来就是处理排序的问题了,一般来说,整句搜索拿到的结果相关度最高,所以权重也最高,理应排在第一位。但现实中的搜索引擎可能还要考虑到推广位,以及你要搜索的内容有更加官方的结果(比如你搜nginx,nginx的官方网站应该排在第一位)。或者是百度的百度推广,它可能会放在前面。
大致就是这样,实际上排序的逻辑是非常复杂的。它会根据好几个维度来确定排序结果,他们称这些叫“曲线”。当他调整每个维度的参数后,对排序结果都会产生影响。
在百度中 输入guangzhou下方就会提示广州、广州新闻。我在想百度是不是将一些热门关键字,然后用一个字段记住这些关键字的拼音;搜索的时候就直接查这个表。如果是拼音,就模糊匹配这个拼音标示列。完成匹配后将结果返回。这些只是我的想象,好像当中还有关键字权重机制。谷歌找不到相关资料;是不是有其它方式实现我没想到的呢。求助大侠 谢谢!
原理步骤
(1)获取拼音,转换成最可能的中文汉字。
(2)在这一串汉字或字符串中最可能的排越前。
至于为什么哪些是最可能的。这个是来自于数据分析结果,排序的最可能排最前面。百度每天的使用人次不止1亿次,通过数据分析当然使用越多越精准。
default7 有没些简单的搜索排序算法介绍一下呢。
如果弄清了这个问题, 对面试百度技术不会有什么问题. 可以透露一点, 由于大访问量和速度的原因, 不会直接访问关系数据库.
楼上是不是百度的大神啊 可不可以再多一点,我想做个简单的。 你透露的太一点点了阿
前阵子和公司搜索部的人打了很多交到,了解了搜索引擎的工作大致原理。
搜索引擎内部有很多词表:
停词表,建义词表,同义词表、汉字-拼音的词表、suggest。
当你在搜索引擎上输入一个中文短句,搜索引擎首先会进行分词,然后将这些词,分别去上面提到的几个词表中查找有没有相关联的信息。如你所说的,就会去查找拼音-汉字的词表。遇到guangzhou = 广州,就……
有什么相关论文可以推荐一下 吗?

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。
