Google 程式碼搜尋

  Google 程式碼搜尋


使用條款

討論群組

Google 研究室

關於 Google 程式碼搜尋

常見問題

  1. Google 要檢索哪一種程式碼?
  2. 程式碼搜尋可支援哪種 regexp 語法?
  3. Google 支援哪種程式設計語言?
  4. 如何依語言、授權或檔名限制?
  5. 我能否將 Google 程式碼搜尋結果加到我的網站、IDE 或應用程式中?
  6. Google 如何決定在程式碼中要列出哪種軟體授權?
  7. 如何將我的程式碼新增到 Google 程式碼搜尋結果?
  8. 如何確認 Google 已取得我程式碼檔案的正確語言和授權?
  9. 如何攔截 Google 檢索我的程式碼?
  10. 我有一些關於產品改良的建議, 如何告訴你們?
  11. 如果我看到我認為應該移除的程式碼搜尋結果,該如何告知 Google?
  12. 使用條款包括什麼內容?
 關於 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:javalang:^(c|c#|c\+\+)$)
  • license: 運算子,可依軟體授權來限制 (例如 license:apache-license:gpllicense: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 如何決定要在程式碼片段中列出哪種軟體授權?

我們竭盡所能在註解或個別授權檔 (例如 LICENSELICENCECOPYRIGHTCOPYING) 中尋找授權,以判定程式碼套件的軟體授權。 如果我們找不到授權,就會標示其授權「不明」。 請注意,我們的授權偵測並非絕對完美,我們嘗試列出程式碼作者所標示的授權,但仍有可能犯錯,而且有時候作者會標示錯誤的授權。 「程式碼搜尋」結果也無法告訴您哪些商標涵蓋哪一種軟體。 我們會盡可能告知您任何可能的授權條款,但瞭解沿用程式碼的相關法律規定則是您的責任。

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 程式碼服務條款

Google 首頁 - Google 實驗室 - 討論 - 服務條款 - 說明 - 提交您的程式碼新!

©2011 Google