请问搜索引擎查询是怎么实现的,用数据库查询可以吗

发布于 2021-11-28 18:30:01 字数 73 浏览 773 评论 13

比方说百度搜索,是数据库查询实现的还是其他方法,我以前理解的就是其他网站的关键词储存在百度的数据库中,我们查询时百度调用select 语句实现查询

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

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

发布评论

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

评论(13

青萝楚歌 2021-11-29 20:33:33

你搜索的时候用select那岂不是慢死

简单的,数据量不多的可以用like来模糊查询

但是数据量大了必须要用搜索引擎

成熟稳重的好男人 2021-11-29 20:33:31

coreseek+sphinx

野心澎湃 2021-11-29 20:33:30

article_fc字段所在的表也可以和标题正文所在的文章表分开,文章ID作为article_fc字段所在的表的外键,查出后连接文章表读出标题正文即可.

天涯离梦残月幽梦 2021-11-29 20:33:28



简易中文分词SCWS提供有PECL扩展以及中文词典,PHP使用起来很方便,

可以搭配MySQL的FullText索引(MyISAM/InnoDB)实现简单的全文搜索功能.

http://www.xunsearch.com/scws/docs.php#instscws

表引擎建议使用MySQL5.6.4后的InnoDB.

比如要实现对网站的所有文章进行全文搜索:

插入文章时,对标题和正文这两个字段进行SCWS中文分词并用
空格分隔后存入一个用于全文搜索的字段比如article_fc,该字段要求建立FullText全文索引.

用户搜索时,先使用SCWS对输入进行分词比如获得关键词word1和word2,然后用

SELECT * FROM articles WHERE MATCH(article_fc) AGAINST('word1 word2');

对索引字段article_fc进行全文搜索,把获取的结果中的标题和正文返回即可.

如果要实现专业的全文搜索引擎,推荐使用基于Xapian引擎和SCWS分词的XunSearch
.

XunSearch同样提供了PHP语言的开发接口,使用起来也很方便:

http://www.xunsearch.com/doc/php/guide/search.query

最偏执的依靠 2021-11-29 20:33:27

早期的和部分专业型数据库底层可能会采用sql数据库,但是现在的大型数据库数据量和吞吐率那么高,又要求延迟小,使用sql这种数据库根本做不到。而且考虑到近义词、输入纠错、语义联想等等,sql完全做不到。搜索引擎底层数据的基本算法是倒排索引,你可以百科一下。如果只是想了解搜索引擎的一点皮毛,也可以一下,想深入了解的话找本书看吧,比如信息检索导论什么的

千笙结 2021-11-29 20:33:27

例如用Solr,定期把数据库里的数据提取出来,转化成Solr的格式交给Solr,Solr对其做索引。所搜的时候直接在Solr的索引上搜索,速度比数据库搜索快很多,尤其是模糊匹配,数据库的 like 很慢,但是Solr的非常快。

柳絮泡泡 2021-11-29 20:33:26

感觉不会是数据库,应该是有自己的数据组织结构。

勿忘初心 2021-11-29 20:33:09

在这个基础上再做各种拓展

疾风者 2021-11-29 20:32:49

这样简单的话岂不是任意谁都可以做个简单的搜索引擎?

羁拥 2021-11-29 20:32:29

回复
只不过你说的关键词是建立的反向索引,然后不是用得你说的select的sql数据库

琴流音 2021-11-29 20:28:22

你的理解很到位,不错,继续

坏尐絯 2021-11-29 20:11:09

哦,多谢

可是我不能没有你 2021-11-29 07:33:14

搜索引擎基础肯定也是数据库查询,不过性质不太一样,具体建议你看看Lucene,现在很多自带站内搜索引擎的网站用的都是这种技术

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