關於 Google 程式碼搜尋
常見問題
- Google 要檢索哪一種程式碼?
- 程式碼搜尋可支援哪種 regexp 語法?
- Google 支援哪種程式設計語言?
- 如何依語言、授權或檔名限制?
- 我能否將 Google 程式碼搜尋結果加到我的網站、IDE 或應用程式中?
- Google 如何決定在程式碼中要列出哪種軟體授權?
- 如何將我的程式碼新增到 Google 程式碼搜尋結果?
- 如何確認 Google 已取得我程式碼檔案的正確語言和授權?
- 如何攔截 Google 檢索我的程式碼?
- 我有一些關於產品改良的建議, 如何告訴你們?
- 如果我看到我認為應該移除的程式碼搜尋結果,該如何告知 Google?
- 使用條款包括什麼內容?
「Google 程式碼搜尋」可讓您搜尋網際網路上的開放存取原始碼,以協助您找到功能的定義,並提供範例程式碼。 使用「Google 程式碼搜尋」,您可以:
- 使用一般運算式進行更精確的搜尋
- 依語言、授權或檔名限制搜尋
- 檢視原始檔,以及整個套件和原始網頁的連結
1. Google 要檢索哪一種程式碼?
我們會盡可能檢索所有找得到的開放存取原始碼,包括封存檔 (.tar.gz、.tar.bz2、.tar 和 .zip)、CVS 儲存庫,以及 Subversion 儲存庫。
2. 程式碼搜尋可支援哪種 regexp 語法?
「Google 程式碼搜尋」可支援回溯參照、對照元件和對照類別之外的 POSIX 延伸一般運算式語法。 若要搜尋空格字元,請使用反斜線來逸出,例如 hello,\ world。 您可以用引號括住字串來進行搜尋,例如 "hello, world"。
我們也支援下列 Perl 副檔名:
\w |
符合字詞字元。 (英數字元加上 "_") |
\W |
符合非字詞字元。 |
\s |
符合空格字元。 |
\S |
符合非空格字元。 |
\d |
符合數字字元。 |
\D |
符合非數字字元。 |
3. Google 支援哪種程式設計語言?
進階程式碼搜尋網頁中列出我們能夠偵測的程式設計語言。 不過,即使其中並未列出您選擇的語言,您仍可搜尋以該語言撰寫成的程式碼。 我們會盡可能讓您能夠搜尋到程式碼,包括以我們無法偵測的語言撰寫之程式碼。 如果我們可以偵測檔案的程式設計語言,我們會在搜尋結果中標示,您可以設定限制搜尋,只搜尋以該語言寫成的程式碼。
如果我們不能偵測您選擇的語言,您就可以運用 file: 運算子來搜尋擁有特定副檔名的檔案。 例如,您可以使用 myquery file:\.(x|abc)$ 之類的查詢來限制搜尋副檔名為 .x 或 .abc 的檔案。 如果我們不能偵測您認為非常重要的語言,請務必告訴我們。
4. 如何依語言、授權或檔名限制?
您可以使用進階程式碼搜尋網頁或使用我們的運算子。 我們的運算子包括:
lang: 運算子,可依程式設計語言來限制 (例如 lang:"c++"、-lang:java 或 lang:^(c|c#|c\+\+)$)
license: 運算子,可依軟體授權來限制 (例如 license:apache、-license:gpl 或 license:bsd|mit)
package: 運算子,可依套件 URL 來限制 (例如 package:"www.kernel.org" 或 package:\.tgz$)
file: 運算子,可依檔名來限制 (例如 file:include/linux/$ 或 -file:\.cc$)
上述每個運算子的引數可以是用引號括住的字串,也可以是一般運算式。 如以上範例所示,您可以在每個運算子的前面加上減號 ("-"),當做要排除的條件。
5. 我能否將 Google 程式碼搜尋結果加到我的網站、IDE 或應用程式中?
可以。 「程式碼搜尋結果」可透過 GData/XML feed 取得,且我們鼓勵您協助建立 IDE 外掛程式,並在您的網站中加入「Google 程式碼搜尋」。
6. Google 如何決定要在程式碼片段中列出哪種軟體授權?
我們竭盡所能在註解或個別授權檔 (例如 LICENSE、LICENCE、COPYRIGHT、COPYING) 中尋找授權,以判定程式碼套件的軟體授權。 如果我們找不到授權,就會標示其授權「不明」。 請注意,我們的授權偵測並非絕對完美,我們嘗試列出程式碼作者所標示的授權,但仍有可能犯錯,而且有時候作者會標示錯誤的授權。 「程式碼搜尋」結果也無法告訴您哪些商標涵蓋哪一種軟體。 我們會盡可能告知您任何可能的授權條款,但瞭解沿用程式碼的相關法律規定則是您的責任。
7. 如何將我的程式碼新增到 Google 程式碼搜尋結果?
您可以使用我們的線上表單來提交程式碼。 如果您要提交大量程式碼,建議您建立程式碼搜尋 Sitemap,此功能可讓您指定您網站上的所有程式碼檔案。 請注意,我們不會將所有提交的程式碼都新增至我們的索引,而且我們無法預測或保證程式碼何時出現或是否會出現。
8. 如何確認 Google 已取得我程式碼檔案的正確語言和授權?
您可以建立 packagemap 檔案,以便為套件中的每一個檔案指定語言和授權。 使用 packagemap XML 格式來建立檔案,然後將該檔案放在程式碼封存的頂層目錄中。
9. 如何攔截 Google 檢索我的程式碼?
「Google 程式碼搜尋」會遵守 robots.txt,因此您可以使用下列幾種方式來攔截我們檢索您的程式碼:
- 如果您擁有網頁伺服器的漫遊器檔案使用權限,您可以將程式碼的路徑加入
Disallow: 行。 瞭解更多資訊。
- 或者,您也可以直接將漫遊器檔案放在程式碼套件的根目錄中。 這樣可同時適用於封存檔和 CVS 及 Subversion 之類的來源控制儲存庫。 例如,若要標示您不希望檢索您的程式碼,您可以使用下列程式碼在根目錄中加入一個名稱為
robots.txt 的檔案:
User-agent: *
Disallow: /
請注意,「程式碼搜尋」可能需要一段時間來更新索引,並移除您的程式碼。 如果您的要求十分緊急,請寄電子郵件到 codesearch-issues+tw@google.com 告訴我們。
10. 我有一些關於產品改良的建議, 如何告訴你們?
若要與我們分享您的想法,請將意見張貼在討論群組中。 由於「Google 程式搜尋」是 Google 研究室的一部分,因此我們仍在初步開發階段。 您的意見非常重要,將可以協助我們改善產品。
11. 如果我看到我認為應該移除的程式碼搜尋結果,該如何告知 Google?
「Google 程式碼搜尋」仍屬於 Google 研究室,因此搜尋結果可能未臻完美。 如果您注意到搜尋結果中有重大問題,請寄電子郵件到 codesearch-issues+tw@google.com 告訴我們。 如果您是版權所有者,並認為您發現侵害您版權的結果,請依照我們的 DMCA 程序,要求移除該結果。
12. 使用條款包括哪些內容?
請參閱 Google 程式碼服務條款。