Ff98fdeeee9ca95ebad0f03f9b2ad0a1
如何用好 Google 搜索引擎解决你的问题

俗话说的好,二逼程序员面向老板编程,普通程序员面向对象编程,高级程序员面向搜索引擎(Google)编程。学会正确的使用好 Google 是学习编程的入门知识,也是一个合格程序员必备的基础知识之一,本篇文章将会分享一些使用 Google 的基础技能,帮助大家更好利用 Google 解决自己的问题。

一、基础搜索语法(+、-、OR、""、site、filetype)

1、加号 “+”:Google 无需用明文的“+”来表示逻辑“与”的操作,只要空格就可以了,比如搜索【小专栏+黑客】你直接搜索【小专栏 黑客】,效果是一样的。

2、减号“-”:Google 用减号“-”表示逻辑“非”的操作,比如搜索【小专栏 -黑客】出现的结果是包含“小专栏”这个词,却不包含“黑客”这个词的结果。这里需要注意的是使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟着需要排除的词。

“+”和“-”的作用有的时候是相同的,都是为了缩小搜索结果的范围,提高查询结果命中率。而且这里的“+”和“-”号,是英文字符,而不是中文字符的“+”和“-”。

3、双引号"":将你需要搜索的词语放入双引号中,表示是完全匹配搜索,这种方法搜索程序错误信息时候最好用了,因为匹配搜索的结果页面包含双引号中出现的所有的词,连顺序也必须完全匹配。比如你搜索"Error:Execution failed for task ':app:transformClassesWithDesugarForDebug"。返回结果就是全部匹配这个错误的搜索结果,这将大大提升你搜索的效率。

4、站内搜索 site :表示搜索结果局限于某个具体网站或者网站频道,比如你只想搜索stackoverflow.com 上所有包含"roid.tools.ndk.GradleWorkspace"的页面。


5、文件搜索 filetype :只搜索指定类型的文档,可以用来搜索 pdf、doc、jpg 等类型的文档。比如我想找个关于“WebRTC”相关的文档,这时候我只需要搜索"filetype:pdf WebRTC"就可以。

备注:目前 Google filetype 指令支持以下文档和图片类型:

  • Adobe Acrobat PDF (.pdf)
  • Adobe Postscript (.ps)
  • Autodesk DWF (.dwf)
  • Google地球 KML (.kml)
  • Google地球 KMZ (.kmz)
  • Lotus 1-2-3(wk1、wk2、wk3、wk4、wk5、wki、wks、wku)
  • Lotus WordPro (.lwp)
  • MacWrite (.mw)
  • Microsoft Excel (.xls)
  • Microsoft Powerpoint (.ppt)
  • Microsoft Word (.doc)
  • Microsoft Works(wks、wps、wdb)
  • Microsoft Write (.wri)
  • Rich Text Format富文本格式 (.rtf)
  • Shockwave Flash (.swf)
  • 纯文本(ans、txt)

图片类型:

  • filetype:jpg
  • filetype:gif
  • filetype:png
  • filetype:bmp

以上这些基础方法是我们平时学习编程以及解决工作中一些实际问题最常用到的一些搜索技能,然后还有更高级的搜索方法,将会放在本文末尾供大家参考。

二、搜索实践

学习是一个发现问题、找出问题、解决问题的过程。利用搜索引擎寻找问题答案,我们首先需要将问题细化,然后再根据问题选择合适的搜索关键词。如果你只是用“我安装 Android 开发环境为什么不成功” 这样空泛的大白话去搜索,搜索出来的结果将会非常宽泛,你将会花费大量的时间筛选跟你匹配的答案。以下 5 点来自《编程初学者如何使用搜索引擎》

1、用关键词,而不是整个句子

虽然现在的搜索引擎已经在语义分析和分词上做得相当成熟了,但还是建议用关键词来描述你的问题,这样可以使你的问题更加具体和精准。通常,用空格分割的1~3个关键词,可以比较得到比较好的搜索结果。

2、直接使用报错信息搜索

如果你是在为你的程序无法运行而寻找解决方案,那么直接使用报错提示信息进行搜索是最好的选择。一般来说,代码异常,都会输出异常的类型和位置,而应用软件的错误甚至还会提供对应的错误码,以便于定位和解决问题。用这些信息去搜索,比你用自然语言描述错误现象要精准几百倍。

3、添加范围限定的关键词,缩小搜索范围

比如你要搜索 python 相关的一个问题,那么在你的关键词里加上 python 会好过直接搜索你的具体问题。比如你想了解 Requests 模块的具体用法,如果不加上 python,则很难找到你要的信息。更进一步,如果你清楚你的问题是 django 方面的,那么直接加上 django 关键字会比加 python 更有效。但要注意,你得分清你的问题属于哪个范围。如果是因为你的数据库和你操作系统不兼容而导致的问题,你却一直用 python 关键字进行搜索,那就跑偏了。

4、避免引入歧义

有的时候,你会发现你搜索的关键词会导向一个被热议的问题,但你确信这个问题并不是你想要的。这时候宁可放弃这个会导致歧义的关键词。当然还有另外的解决方法,稍后我会提到。

还有时候,歧义是因为你错误的推测而带来,比如上个例子中的“python”导致查不到数据库的问题。所以在搜索过程中,你需要根据情况调整你的关键词。

5、逐步修正关键词

复杂的问题往往无法一蹴而就地解决。搜索的过程也是一个反复思考的过程,需要通过已有的结果推断和修正,最终达到目标。

三、高级搜索语法 (intitle、inurl、allinurl、allintitle、 link等)

1、intitle: 限定搜索标题中含指定关键词的网页
例如,找林青霞的写真,就可以这样查询:写真 intitle:林青霞

2、inurl: 限定搜索url中含指定关键词的网页
例如,找关于 photoshop 的使用技巧,可以这样查询:photoshop inurl:jiqiao
上面这个查询串中的“photoshop”,是可以出现在网页的任何位置,而“jiqiao”则必须出现在网页url中。

3、inanchor: 限定搜索页面链接锚文本中含指定关键词的网页
如: inanchor:google search guide 。限定多个关键词用 allinanchor:

4、intext: 限定搜索正文文本(不含标题和链接)中含指定关键词的网页
如: intext:google vs mircosoft。

5、link: 搜索链向某网站/网址的网页
如: link:www.google.com

6、related: 搜索与某网页相似或相关的页面
如: related:www.google.com

7、cache: 搜索某网页在Google缓存(网页快照)中的旧版本
如: cache:www.google.com

8、info: 综合查询某网页的信息,即列出上述四个命令
如: info:www.google.com 。作用同 id:

9、define: 关键词定义
查询关键词的网络释义。如: define:google 。

10、特殊符号:

~ 同义词,关键词前加波浪线。如:~table 。

  • 通配符,如:Google was founded in * 。 ** 指数,作用同 ^ ,如:2**10 。

欢迎留言补充

引用

© 著作权归作者所有
这个作品真棒,我要支持一下!
专栏介绍: 这是一份程序员/极客的入门指南,这个专栏将会整理收录一系列程序员必备的基础性文章,在这里你将学会...
3条评论

很棒,谢谢您的贡献

#1楼 @yuanjunhua 你看完有收获就好

Jersey
#3

谢谢分享😁

top Created with Sketch.