JavaRush /Java Blog /Random-TW /GitHub 代碼搜尋:查找更多,搜尋更少 - GitHub 推出搜尋引擎
Roman Beekeeper
等級 35

GitHub 代碼搜尋:查找更多,搜尋更少 - GitHub 推出搜尋引擎

在 Random-TW 群組發布
大家好,親愛的朋友們!作為 GitHub 新功能的愛好者,我非常有興趣知道很快我們都將能夠快速有效地搜尋 GitHub 程式碼庫。這可能非常方便,特別是當您需要找到一種複雜的方法來使用工具時。 《GitHub 代碼搜尋:查找更多,搜尋更少》 - GitHub 推出的搜尋引擎 - 1這尤其與 GitHub 未來的競爭對手在俄羅斯開設這一事實產生了共鳴。因此,GitHub絕對不應該固步自封,儘管他們毫無疑問是市場的領導者。我們需要繼續前進和發展,否則不到一個小時,競爭對手就會迎頭趕上並橫掃而去。並讓它看起來不那麼令人難以置信。舉個例子:有多少人還在使用諾基亞手機?誰知道他們製造了手機?曾經,它們簡直是遙不可及、無可爭議的市場領導者……而現在它們卻出現在統計錯誤的領域。

第一印象

GitHub 創建了一個項目,您可以在其中搜尋、導航和分析您的程式碼以及 GitHub 上發布的數十億行程式碼。值得注意的是,搜尋是可擴展的、快速且準確的。它是專門為程式碼搜尋從頭開始創建的。導航適用於 10 種主要程式語言,無需設定(我們希望這個清單將來會成長)。您可以使用正則表達式進行搜索,這非常酷。也可以使用其他過濾器:
  • 按組織劃分;
  • 透過程式語言;
  • 由特定所有者;
  • 按檔案副檔名;
  • 透過正規表示式。
這份名單已經令人印象深刻了!事實證明,搜尋引擎使我們有機會創建複雜的搜尋查詢,在其中我們可以清楚地定義搜尋所需的邊界。引擎的第二個重要部分是程式碼導航 😳 開發環境有哪些方便性以及為什麼人們要為此付費?因為它們讓我們的生活更輕鬆,幫助我們瀏覽程式碼,從而提高開發和閱讀程式碼的速度。GitHub 現在為我們提供了這個很酷的功能。這難以置信。是的,我知道目前 GitHub 上已經有類似導航的東西了,但是功能還很短而且很粗糙。也就是說,無需開發環境,您就可以搜尋某些方法在哪裡使用、在哪裡定義。這真是太棒了。GitHub 你讓我很開心。也可以在類別中進行導入導航。這解決了在 GitHub 上尋找和研究特定庫的許多問題。現在這個過程加速了很多倍。而且這一切都是免費的。非常棒。他會受歡迎嗎?我確信是的!

讓我們更詳細地討論搜索

很有趣,自己看一下,試試看:是不是像他們說的那麼方便?目前,此功能尚未公開提供,您可以使用連結將自己新增至等待名單。我們把所有的點都填在那裡,問題很簡單,我這裡就不描述了。結果,我們被添加到等待名單中並繼續前進。結果,答案將是這樣的: 《GitHub 代碼搜尋:查找更多,搜尋更少》 - GitHub 推出搜尋引擎 - 2你只需要等待。只要我加入,我一定會把一切都給你看。不要拖延,添加你自己,以便你稍後可以弄清楚並使用它來讓你高興)當然,遺憾的是你不能立即嘗試這個新工具,所以讓我們分析一下他們的文檔並在更詳細地說明我們如何在工作中使用此工具。現在關於搜尋。它將使用在我正在編寫的庫中有意義的類別和構造。這會讓我更清楚、更容易,我希望你也能更輕鬆。

基本搜尋

ImageComparison是最簡單的搜索,它可以使用檔案名稱及其內容中的查詢進行精確搜索。這裡一切看起來都很簡單。如果我們想透過類別名稱清楚地找到它的聲明位置和使用位置,這樣的搜尋將幫助我們做到這一點。當您輸入以空格分隔的多個單字時,結果將分別搜尋所有這些單字: Image Comparison ,這表示它將尋找ImageComparison的檔案和程式碼。如果您需要搜尋包含空格的字串,那麼您只需要使用引號。例如: “ImageComparison Comparison = new ImageComparison()”,然後搜尋將符合整個字串。為了轉義,我們一如既往地使用“\”。到目前為止,一切都是直觀的,而且通常就是這樣做的。此外,我們可以向此基本搜尋新增過濾器。因此,讓我們逐一討論。這些將是我們已經建立的篩選器的邏輯「AND」。

按存儲庫過濾

一旦我們的基本過濾器準備好了,我們就可以縮小搜索範圍並按特定存儲庫進行搜索,這非常方便。你不需要尋找類別位於哪個資料夾,你可以直接寫:
倉庫:romankh3/image-comparison ImageComparisonResult
我們需要指定repo:${user_name}/${repo_name}。您也可以透過簡單地新增 OR 來搜尋多個儲存庫:
倉庫:romankh3/image-comparison 或 倉庫:romankh3/usage-image-comparison ImageComparisonResult
正如 GitHub 上所述,目前他們不支援在名稱被指定為正規表示式的儲存庫中進行搜尋...這意味著他們計劃添加這樣的功能,並且意味著該專案不會停留在聲明的位置功能,並將進一步發展。

按組織過濾

以組織或使用者搜尋的方式與按儲存庫搜尋的方式完全相同,只是關鍵字不是repo,而是org
org:romankh3 影像比較
然後搜尋將遍歷使用者/組織的所有儲存庫。

按程式語言過濾

您也可以指定以特定程式語言搜尋檔案。這裡的構造與儲存庫和組織相同,只是關鍵字是language
語言:java ImageComparison
就像儲存庫一樣,它支援使用 OR 關鍵字同時以多種語言進行搜尋:
語言:java 或 語言:ruby ImageComparison
可以在此處 找到 GitHub 支援的語言的完整清單。我想知道BrainFuck有嗎?😂

按檔案路徑過濾

專案中的每個檔案都有自己的路徑,您也可以透過新增篩選器來搜尋它。例如,有一個檔案ImageComparisonResult,它的路徑為:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
因此,要查找路徑以src/main/java/com/github/romankh3/image開頭的所有類,您需要:
路徑:src/main/java/com/github/romankh3/image
當我們不希望測試類別被排除在搜尋結果之外的情況下,這非常有用。反之亦然,僅測試。這使您的搜尋更加靈活。可以使用正規表示式指定按檔案路徑的篩選器。例如,我們需要找到
路徑:src/*/*.js

布林運算

當然,所有過濾器建構的最終目的是使用布林運算將這些內容組合在一起。為此,我們有 AND、OR、AND NOT。我想這對我們來說應該足夠了。例如,讓我們建立一個複雜的搜尋查詢:針對特定使用者/組織的 Java 或 Kotlin 生產程式碼:
repo:romankh3 AND (語言:java OR 語言:kotlin) AND NOT 路徑:*/test/*
我告訴你,這簡直令人難以置信。檢索請求寫得如此簡單、快速、簡潔、清晰,檢索和閱讀請求不會有任何問題。

一個小小的撤退

趁著我們的喜悅尚未冷卻,我想回到2018年,記住一些事情……還記得,當大家發現微軟要收購GitHub的時候,大家都以為這個專案會被埋沒嗎?他的命運就是第二個Skype的道路嗎?每個人都是如何開始將他們的專案遷移到 GitLab 的?但說實話,在這種炒作之後,我創造了一些東西,也遭受了一些痛苦。但說實話,我再也沒有去過搬計畫的地方。但不知怎的,我不想這麼做。為什麼?對此也有一些想法。讓我提醒您,在將 GitHub 出售給比爾蓋茲之後,該專案添加了免費擁有私人儲存庫的功能,為 CI/CD 流程發布了 GitHub Actions 等等。現在也是一個強大的搜尋引擎。這聽起來不像是想要毀掉這個項目。更像是微軟不想繳利潤稅,並在年底以超過 90 億美元的價格成功收購了😁,然後他們決定開發這個項目。對於開源開發人員來說,這確實是儲存程式碼的好地方。您無需離開 GitHub 即可全面開發您的產品。

在最後

我一口氣寫完這篇文章。我真的很喜歡言語和情感像間歇泉一樣流動。這就是推動科技進步的動力。因此,我們要密切關注局勢,不要放棄。我相信我們每個人都應該學會使用它。對於尚未註冊 GitHub 的人,我強烈建議您註冊。這很值得。 一如既往,朋友們,不要忘記訂閱我的電報頻道,我在其中結合了所有公共活動。除了我在這裡發布的文章之外,我還在那裡寫了一些較短的文章,其中涉及我對開發和 IT 領域感興趣的主題。那裡已經有超過800名訂閱者了! 當然,還有我的GitHub 帳戶,我在其中發布文章的所有演示專案、更新我的庫並開發開源組織。 就這樣,謝謝大家的閱讀,我們不說再見了👌
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION