[Google API](5)筛选结果

设置筛选条件

可以根据很多因素来限制 Google 搜索。它们包括语言、内容、国家或地区和主题。您还可以控制输入和输出的编码。

例如,Google 列出了国家或地区代码,允许您根据来源国家或地区限制数据。虽然在分发文件 APIs_Reference.html 上有完整的清单,但是要将搜索限制在包含词组 "science fiction" 的来源为 United Kingdom 的页面上,请设置 restrict 参数:

... 
          search.setMaxResults(maxResult);  
          
          search.setRestrict("countryUK");   

          GoogleSearchResult result = search.doSearch();  
...

Google 还指定了信息的四组“特殊分类”:

  • U.S. Government (unclesam)
  • Linux (linux)
  • Macintosh (mac)
  • FreeBSD (bsd)

因此,为了搜索归在 linux 分类的 "science fiction" 页面,请将限制条件设置成:

... 
          search.setQueryString(searchTerm);
          
          search.setRestrict("linux");   

          GoogleSearchResult result = search.doSearch();  
...

请注意,主题域并不总是如您所愿的限制结果。例如,实际上在 linux 类中 "science fiction" 有 8710 个结果。


  有筛选条件的搜索结果

这里有一个样本,是在 linux 类中搜索到的 8710 个 "science fiction" 结果页面:

... 
Bills Pointers to <b>Science</b> <b>Fiction</b>
http://starship.python.net/crew/gandalf/rtlinux/luz.cs.nmt.edu/%257Etobor/jwz/ba 
bylon.shtml 
     Bills Pointers to <b>Science</b> <b>Fiction</b>. Here is what
happens<br> w
hen barney meets star trek. Warner <b>...</b>
        
General and <b>Science</b> <b>Fiction</b> books
http://www.bowling.uklinux.net/bookshop/sfbooks.php3 
      <b>...</b> Striking Home <b>Science</b>
<b>Fiction</b> Bookshop In Associa
tion with Amazon.com<br> and Amazon.co.uk [Christian Books] [Bowling Books] <b>.
..</b> 
        
<b>Science</b> <b>Fiction</b> 
http://nico-s.homelinux.org/ScienceFiction/livres/categories.php?FInfos=sciencef 
iction 
     <b>Science</b> <b>Fiction</b>.
<b>...</b> Definition de la &quot;<b>Science
</b> <b>Fiction</b>&quot; par les editions Pocket. Barrington<br> J. Bayley. Al'
unite. Le rayon Zen (auxditions le livre de poche). <b>...</b>
...

您还可以将限制条件组合在一起,如:

unclesam.countryUS 
linux.(countryUS|countryUK) 
max.(-countryUS)


  选择语言

API 还提供了特定的参数限制结果的语言。

... 
          search.setQueryString(searchTerm);
        
           search.setLanguageRestricts("lang_fr");   
        
          GoogleSearchResult result = search.doSearch();
...

Google 能识别以下的语言代码:

Arabic:  lang_ar   
Chinese (S):  lang_zh-CN   
Chinese (T):  lang_zh-TW   
Czech:  lang_cs   
Danish:  lang_da   
Dutch:  lang_nl   
English:  lang_en   
Estonian:  lang_et   
Finnish:  lang_fi   
French:  lang_fr   
German:  lang_de   
Greek:  lang_el   
Hebrew:  lang_iw   
Hungarian:  lang_hu   
Icelandic:  lang_is 
Italian;  lang_it 
Japanese:  lang_ja 
Korean;  lang_ko  
Latvian:  lang_lv 
Lithuanian:  lang_lt 
Norwegian:  lang_no 
Portuguese:  lang_pt 
Polish:  lang_pl 
Romanian:  lang_ro 
Russian:  lang_ru 
Spanish:  lang_es
Swedish:  lang_sv
Turkish:  lang_tr


  指定编码

对于信息在使用不同编码的环境中来回传输的情况,API 使您可以以指定的方式设定输入和输出语言的编码。例如:

... 
          search.setQueryString(searchTerm);  
          search.setInputEncoding("greek"); 
          search.setOutputEncoding("hebrew");   
         
          GoogleSearchResult result = search.doSearch();  
...  

在这种情况下,解释查询字符串 searchTerm 时就好象它是用 greek 编码的一样,以 hebrew 编码的结果将会被送回来。默认的编码方式是 latin1。


  去除成人结果

上网冲浪相当长的时间而没有注意到 Web 上有大量的成人内容是不大可能的。要去除搜索集中的成人结果,请选择安全搜索:

... 
         search.setQueryString(searchTerm);  
         
         search.setSafeSearch(true);   

         GoogleSearchResult result = search.doSearch();  
... 

如果 setSafeSearch 被设成 true,Google 就会使用一个检查关键词和词组、URL 和 Open Directory 目录的过滤器。


  去除相关结果

在有许多相似结果的情况下,API 允许您只返回典型页面。例如,如果打开过滤功能,则对于标题和片断极为相似的一组结果,Google 将只返回其中的第一个,而同一 Web 主机上则只返回前两个结果。这样用户不但不会被同一个站点的结果困住,而且还能对那个站点上的可用内容有所了解。

API 允许您使用 setFilter() 方法将过滤功能关闭,但请注意代码样本下面的注意事项。

... 
          search.setQueryString(searchTerm);
        
          search.setFilter(true);   
       
          GoogleSearchResult result = search.doSearch();
...

注意,根据文档,当这个值设为 true 时,过滤功能打开,而当为 false 时则过滤功能关闭。不过,看上去,情况似乎刚好相反,当这个值被设为 true 时则返回相关结果,而当它设为 false 时则排除结果集。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值