搜索引擎和mysql_选择哪一种搜索?数据库还是搜索引擎?(已废弃)

注意:AKCMS已于2019年12月27日宣布停止更新,此文档仅供老用户参考,不建议新用户选择AKCMS建站。

注意:AKCMS6.1.2已取消授权机制,文档中关于授权、服务、技术支持等的内容均已失效。

注意:内置的搜索引擎已在新版中废弃,此文档已过期

AKCMS支持两种搜索:基于数据库的字符串搜索和基于搜索引擎的关键词搜索。

二者各有优劣,需要根据自己网站的情况自行选择。本文综合多个方面进行比较,供大家参考。

数据库搜索的优点:

数据库搜索能对题目、关键词两个字段进行完全匹配,而不管搜索的是不是一个词;比如一篇文章的题目是:《公安部出台新规遏制交通事故 拿驾照难度提高》,通过“照难”搜索,也能搜索到这篇文章,虽然这不是一个词。

搜索引擎搜索则只能针对自定义的词库,或者自动拆分的关键词进行搜索,再拿上一个例子的题目比喻:如果词库里有“驾照”这个词,就可以搜索到这篇文章;如果没有,则搜索不到。

数据库搜索非常简单,直接在模板里插入标签就可以搜索,一个很简单的例子:这就搜索了(当然还可以根据情况加上其他过滤参数,这里仅是一个例子)。

搜索引擎搜索则复杂多了,它需要首先创建搜索引擎,再创建词库(基于关键词字段拆分的不需要事先创建),然后创建排序索引,这些工作做完之后,再在模板中插入标签。和数据库搜索不同的是,需要多加一个参数sid,它的值是搜索引擎的ID。

数据库搜索是实时的,只要你修改了文章,立即会体现在搜索结果中。

搜索引擎搜索则不是实时的,它显示的是索引最后一次更新时的搜索结果。(更新索引可通过计划任务实现定时自动执行)

数据库搜索除了数据库本身之外不额外占用存储空间

搜索引擎搜索除了数据库空间之外,还占用少量的WEB空间,会生成一堆小文件,文件数=词数×(1+排序数)

以上说的都是数据库搜索的优点,也许您要问了,既然数据库搜索这么好,那搜索引擎搜索有什么必要存在呢?其实搜索引擎有以下不可替代的优点:

数据库搜索仅能搜索较小数据量的内容,当数据库较大时就基本不可用了

搜索引擎搜索能支持的数据量比直接搜数据库大百倍以上,当数据量大到一定程度,只能用搜索引擎搜索

数据库搜索较慢,数据量少还不明显,当数据量稍微多一些的时候就能感觉到明显得差别,尤其当列表翻页翻到几百页的时候,就更慢了!

搜索引擎搜索比较快,数据量增加几倍速度也不会下降太多,列表翻页到几百页和前几页的速度差别很小,当搜索量大到一定程度,只能用搜索引擎搜索

数据库搜索当访问量大的时候会使MySQL进程占用CPU和内存都大大增加

搜索引擎搜索会使PHP进程占用CPU和内存增加,但可接受。(只要有访问,就必然会使CPU、内存占用增加)

数据库搜索只能搜索两个字段“题目”和“关键词”,通过指定where参数可以搜索更多字段,但无法搜索正文和扩展字段

搜索引擎搜索可以搜索任何字段,包括:正文和扩展字段

数据库搜索只能按照有限的几个字段排序,速度较慢

搜索引擎搜索可以按照任意整数字段(未来还将支持浮点数字段,即小数)排序,速度较快

数据库搜索只能知道结果中包含指定的关键词

搜索引擎搜索不但知道有哪些结果,还知道哪些结果中出现关键词的次数多,还可以排序

需要指出的是:AKCMS自带的搜索引擎是我们自主开发的一个超轻量级的引擎,任何主机(SAE等分布式应用平台除外)都可以运行。性能、负载等指标与专业的搜索引擎差距是非常明显的。当数据量超过10GB或数据条数超过100万,就应该考虑使用第三方专业的搜索引擎了(需要独立服务器才可以,虚拟主机无法安装)。第三方搜索引擎可以推荐的有lucene、Sphinx等。

请根据以上分析选择搜索的实现方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值