数据库-数据模糊查询

发布于 2016-12-31 22:21:47 字数 63 浏览 1298 评论 5

类似于百度的模糊查询是如何实现的?网页内容在后端是以什么形式进行存储?数据库?难道是用数据库查询的like语句?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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

评论(5

偏爱自由 2017-09-29 12:12:07

首先可以确定肯定不是你说的like操作,那肯定会挂掉。这个肯定有词库的支持,拥有一个中文词库,分词易如反掌,一点也不复杂。关键是这个词库的数据结构,不知道百度是怎么架构和组织的,一般的是按照散列表的方式组织的,并且按照词语联想的方式组织。只要拥有这样一个词库,将一段文字分词就非常简单了。

晚风撩人 2017-09-01 02:08:33

首先,我感觉百度的后端绝不是数据库,如果是数据库,用like去做模糊匹配,就彻底废了。
感觉实现的思路是这样的:
1.网络爬虫去爬各种网站信息;
2.将网站信息进行日志文件存储,可是使用类似hadoop去实现;
3.建立文件搜索索引

你每一次的搜索查询其实都是对文件服务器的索引操作,这也就能解释为什么百度的查询库为什么都是更新时间的问题,并不是实时抓取数据。个人感觉应该是这样实现的,有知道详情的也可以扔个砖头

瑾兮 2017-08-21 03:46:20

like的话效率太低,肯定不行。
前段时间正好看了下《web智能算法》。百度应该也是使用了爬虫先采集信息,然后再使用lucene等技术建立了相关的索引,存储信息,最终用户搜索的是已经处理过的索引文件。

清晨说ぺ晚安 2017-05-30 16:34:24

like操作就不太可能了。假如单是like可以搞定的话,那Lucene这种搜索框架就没有存在的必要了。

这里涉及到的有两个点:

1.怎么查:首先他有个分词的过程,然后根据分完后的字段搜索索引库,我觉得这里他所做的搜索也不是盲目的搜索。还有一个,就是词义扩展,如把search 扩展为 searching等。

2.要查的东西是如何存储的:索引库。百度会定期爬取网络上的网页,然后处理,建立自己的索引库,估计不会用市场上的数据库产品。

你要弄搜索的话,建议你可以学习下一下开源的搜索框架,如Lucene;有助于理解。

想挽留 2017-01-17 00:38:01

可以使用apache solr或者nutch这种已有的开源搜索引擎

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文