发新话题
打印

搜索功能的理解问题

搜索功能的理解问题

才学PHP一个多星期,最近没事,就在看sablog的源程序,在看到搜索功能的时候,看见是这样做的,就是表单提交搜索关键字和其他一些参数到post.php中得到查询结果,把结果插入到sablog_searechindex这个表中,然后跳转到index.php,根据调出最早一次插入的sablog_searchindex记录存储的文章ID和其他一些参数,到sablog_article中查询得到具体要查询的文章,最后显示这些结果
发现sablog_searchindex每查询一次就加入一条记录。这样随着查询次数的积累,sablog_searchindex这个表就越来越大,这样没什么影响吗?

TOP

这样做目的就让mysql查找一次就OK了,这种情况大大减少大批量搜索耐浪费服务器资源,
如果按以前搜索.第二页又要搜索次,人多搜索就会大大用CPU,最后把服务器搞的非常慢.有些站禁用搜索功能目的就是这个.说回头这样做查找关键词结果放到sablog_searchindex里面,下次或者翻第二页就不需再向mysql再进行全面查询,
专注sablog
qq:1738143

TOP

谢谢,仔细理解了一下post.php中开头对searchindex表的查询,明白了你的意思。30秒内同一IP进行的同一关键字的第2次查询,会直接调用上次的查询结果。30秒后的即使是IP和关键字相同也会重新加入一条新的记录到serchindex中。那么下次指的是30秒内的下次,而你说的第二页具体是指什么?

TOP

你看看地址sablog/?action=search&searchid=2
这个已经查找完结果了,如果在后台没把搜索记录清除过,直接访问sablog/?action=search&searchid=2,搜索记录都是一样的
就直接查询数据库里searchid值keywords=关键词,还有ids匹配sablog_articles主题ID值,
复制内容到剪贴板
代码:
用ids里匹配0,57,55,56,53,54,51,52,49,50,38,47,48,45,46,36,43,44,41,42,39,40,37,33,30,34,32,26,27,31,29,28,23,25,24,21,22,19,20,11,5,3,6,4
专注sablog
qq:1738143

TOP

谢谢,完全明白了!

TOP

也可以理解为索引
专注sablog
qq:1738143

TOP

发新话题