你在这里


搜索

替换Drupal系统提供的搜索框和结果

James Qi 2016年9月29日 - 16:17 发布

  使用Drupal很多年了,在站内搜索上基本上都是采用了系统自带的搜索功能,搜索框基本没变,只是搜索结果页通过search-results.tpl.php和search-result.tpl.php进行过一些小的修改。但遇到了数据量巨大、汉字编码等问题的时候,也在某些情况下采用过其它方式:

  • Google Custom Search Engine,这个在国外还可以用,在国内无法使用;
  • Apache Solr,需要自建一套搜索功能,比较复杂;
  • Drupal Views,可以实现一些组合条件搜索查询功能。

  最近在新建已经完善以前网站的时候,遇到用户搜索目标比较清晰,我们网站中不一定有正好用户需要的关键词但有其中截取的一部分的信息,例如电话号码、IP地址等,如果能用程序做一些判断就可以让用户避免“搜索无结果”的答复,后来试了几种办法,可以用程序与Drupal本身的搜索功能结合起来用,给用户更好的体验:

自由标签:

网页中嵌入Google Custom Search API搜索结果

James Qi 2016年6月12日 - 14:30 发布

  很早以前我们就在MediaWiki网站的页面中嵌入过Google Search API代码,见我2008年记录的《Google AJAX Search API 很好!很强大!》,这些嵌入的内容对网站浏览者来说还是很有用的,但到2010年ZF“整治互联网低俗之风”的时候,我们网站上嵌入的Google搜索结果也成了我们网站“涉黄”的原因,只好乖乖地去掉API调用代码,随后Google搜索也被迫退出中国大陆。

  但在我们放在国外服务器上提供给老外浏览的站点上我们依然保留了Google Web Search API的内容,直到这个API被Google自身升级、淘汰,Google推出Custom Search API是2010年,当时说老的Search API将继续可以用3年,实际上延续了近6年,前一阵子我们收到的通知邮件中说在2016年4月29日正式停止服务。

自由标签:

Drupal自带搜索的包含字段选择及中文最小索引字符数

James Qi 2016年3月30日 - 16:56 发布

  用Drupal好些年了,英文站的搜索感觉还行,但中文站的搜索明显不太好用,无论是性能、准确性等方面都体验不佳。也曾经用过Apache Solr来弥补,不过配置起来有点麻烦,而且最后的搜索结果也并不一定很理想。

  大数据量的站点要想生成搜索索引就比较困难,在字段也多的情况下更是索引起来很慢,而且容易造成MySQL超时报错或者连接数堵塞。也想过减少一些不太必要索引的字段来降低索引负载,但大数据量的站点重新生成测试就需要等待很多天。这两天干脆拿一个数据量少的不重要站点来做测试,在“内容类型”的“管理显示”设置中添加“自定义显示设置”-“搜索索引”,然后把不需要索引的字段设置为“隐藏”,如果只有标题需要索引,可以把所有字段都设置为“隐藏”,而标题是默认会被索引的,这个我在直接打开MySQL中相关搜索表查看可以确认。通过减少索引的字段,重新索引后数据库中相应表的大小有所减少,证明这是一个有效降低负荷的办法。

自由标签:

屏蔽采集者专门进行站内搜索的爬虫

James Qi 2015年11月4日 - 11:54 发布

  网站内容抓取采集真是中国互联网的一大特色,我们做了这么多年网站,一直都遇到各种各样对我们内容进行采集、复制的家伙。前一阵子发现一个网站 www.postcodequery.com 具体和我们的 www.postcodebase.com 几乎内容一样,也真是煞费苦心。no

  另外近期在搬迁一些Wiki网站到云服务器上的时候,发现RDS会急剧升高、卡死,从MySQL进程来看是一些内部搜索语句造成的,显然正常的访问者搜索不会这么多、这么快,只能是机器人采集才会这样,当时来不及查就临时把内部搜索功能关闭了。

  但关闭功能毕竟不是长久之计,今天早上再次排查、处理,过程如下:

MediaWiki的页面中调用内部搜索结果

James Qi 2012年11月22日 - 13:47 发布

  我们用MediaWiki搭建的网站中,一些页面需要用到内部搜索结果,我们以前的办法是采用Google Search API,嵌入JavaScript代码后就可以显示Google已经收录的相关页面,这个办法简单易行,缺点是没有被收录的页面无法出现,已经展示的JS内容不会被搜索引擎发现内容。

  十八大前后这一阵子Google搜索一直不正常,也影响到我们网站上含有Google搜索代码的页面,间歇性会出现打不开或者打开极慢的情况,影响用户正常访问我们的页面。这个问题有可能长期存在,所以必须设法解决了,否则只好把相关页面删除。

  昨天试了一些办法,后来用在页面中嵌入PHP程序显示Wiki自己的内部搜索结果的办法算是基本上可以解决,步骤如下:

自由标签:

在Drupal的内部搜索结果页面中去掉发布者、发布时间等信息

James Qi 2011年5月11日 - 09:14 发布

  前一阵子修改了MediaWiki中的一个PHP程序,去掉了全文检索结果中的文件大小、更新时间等信息,另外在Drupal中也是可以实现的,现在补充在Drupal中实现内部搜索结果页面中去掉发布者、发布时间等信息的办法。

  办法很简单,就是在Drupal目录中找到这个文件:

drupal_root/modules/search/search-result.tpl.php

  将其中第57行(Drupal 6.20)注释掉就可以:

  <?php if ($info) : ?>
<!--jamesqi 2011-5-10
  <p class="search-info"><?php print $info; ?></p>
-->
  <?php endif; ?>

  也就是去掉显示$info的那一行。这样可以避免大量导入数据的网站中搜索结果都是显示相同的发布者和相同的时间信息。

自由标签:

MediaWiki自带全文检索结果中去掉字节数、日期时间等信息

James Qi 2011年4月24日 - 20:05 发布

  MediaWiki升级到1.16后,自带的中文全文检索功能基本正常,我们打开了大部分MediaWiki网站的自带搜索,来取代之前采用的调用Google Ajax Search API,不过自带检索中的搜索结果带有下面这样的字节数、日期时间等信息在一些网站中是不合适的:

星際爭霸Ⅱ
# 官方網站:[http://www.starcraft2.com/ 星際爭霸]註:英文網站 # 21CN遊戲:[http://game.21cn.com/zhuanti/starcraft2/ 星際爭霸Ⅱ專題]
5 KB (474個字) - 2008年7月28日 (一) 14:00

  字节数对搜索用户的作用不大,而日期时间让一些长期不变的内容显得过时,所以还是去掉的好,以前同事也发现这个问题,但因为怕检查、修改php程序麻烦而一直拖着没有去解决,今天去找了php程序,没有花太多时间也就找到了解决办法,修改这个文件:

人民网的狗搜蜘蛛Gosospider被我们网站屏蔽

James Qi 2011年4月7日 - 23:20 发布

  前段时间更换服务器后,将各种限制都打开了,让各种爬虫也都自由访问,包括各种搜索引擎或者采集软件。但这两天发现新服务器都不堪重负,同事在Squid的日志中找到大量来自1.202.218.*, 1.202.219.*, 1.202.220.*, 1.202.221.*的访问,查看User-Agent信息是gosospider Mozilla/5.0 (compatible; GosoSpider; +http://www.goso.cn/aboutus.html),原来是伟大、光荣、正确的“狗搜”来访,虽然有受宠若惊的感觉,但也让我们服务器的鸭梨过大。

  以前Sosospider曾经让我们的服务器负载过高,现在换成这个Goso了,它们都是心急火燎地希望马上把你的网站上的内容全部爬光的那种,放出的大量蜘蛛以极快的速度多路同时抓取,即使把你网站搞瘫痪也全然不顾。没有办法,咱们没有这个福分享受邓亚萍同志领衔的国家级权威服务,还是都屏蔽掉吧。

订阅 RSS - 搜索