วิธีค้นหาบน GitHub เพื่อให้ได้การแข่งขันที่แน่นอน (เช่นคำพูดทำอะไรกับ Google)


218

ฉันสามารถค้นหาข้อมูลที่ตรงจาก Google "system <<-"โดยใช้คำพูดเช่น วิธีการทำสิ่งที่คล้ายกันสำหรับ GitHub? ฉันไม่สามารถทำงานได้

คำตอบ:


130

คุณทำไม่ได้ กฎการค้นหา GitHub อย่างเป็นทางการ:

เนื่องจากความซับซ้อนของรหัสการค้นหามีข้อ จำกัด เล็กน้อยเกี่ยวกับวิธีการค้นหา:

  • จะพิจารณาเฉพาะสาขาเริ่มต้นเท่านั้น ในกรณีส่วนใหญ่จะเป็นสาขาหลัก
  • ค้นหาไฟล์ที่เล็กกว่า384 KBเท่านั้น
  • คุณต้องรวมคำค้นหาอย่างน้อยหนึ่งคำเสมอเมื่อค้นหาซอร์สโค้ด ตัวอย่างเช่นการค้นหาlanguage:goไม่ถูกต้องในขณะที่amazing language:goเป็น
  • อย่างน้อยที่สุดผลการค้นหาสามารถแสดงสองแฟรกเมนต์จากไฟล์เดียวกัน แต่อาจมีผลลัพธ์มากกว่าภายในไฟล์
  • คุณไม่สามารถใช้อักขระตัวแทนต่อไปนี้เป็นส่วนหนึ่งของคำค้นหา :
    . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
    การค้นหาจะไม่สนใจสัญลักษณ์เหล่านี้

การแก้ปัญหา:

หากคุณต้องการค้นหาในแหล่งเก็บข้อมูลเดียวคุณสามารถโคลนแบบโลคัลและใช้grepเพื่อค้นหาสตริง:

grep -r "system <<-" /repository_dir

354
นี่มันแย่มาก ทำไมพวกเขาถึงไม่แก้ไขมัน? เป็นการดีที่ฉันควรจะสามารถค้นหาด้วย regex ฉันจะไปประท้วงที่ไหน :)
Daniel Darabos

10
ฉันถามฝ่ายสนับสนุนและพวกเขาตอบกลับว่า: "ความสามารถในการหลบหนีอักขระพิเศษในการค้นหา GitHub เป็นคุณลักษณะที่มีการร้องขอบ่อยครั้งในขณะที่ฉันไม่สามารถทำสัญญาใด ๆ ได้ฉันจะ +1 แนวคิดในรายการคำขอคุณลักษณะภายในของเรา" . ฉันคิดว่ามันขึ้นอยู่กับขนาดดัชนี: มีโค้ด github มากเกินไป
DenisKolodin

10
ฉันเชื่อว่านี่เป็นความท้าทายในการจัดทำดัชนี การทำให้การค้นหาด้วยคำพูดคู่ต่อคำนั้นเป็นคำสั่งที่มีขนาดใหญ่กว่าการนำไปใช้ในปัจจุบัน ทำให้การทำงานค้นหา regex มีแนวโน้ม> 1 คำสั่งของขนาดหนักหรือแม้กระทั่งอาจจะถามปัญหา
Matt Kocaj

14
สิ่งที่เกี่ยวกับสตริงตัวอักษรที่มีจุด ... เช่นldap.mycomp.com?!?!?! ฉันไม่จำเป็นต้อง regex ผมเพียงแค่ต้องการค้นหาสตริงตัวอักษร
เจสัน

1
สิ่งนี้ไม่ได้รับการแก้ไขเนื่องจากใช้ elasticsearch ดังนั้นพวกเขาควรทำดัชนีข้อมูลทั้งหมดใหม่ด้วยฟิลด์ใหม่เพื่อนำมาพิจารณาซึ่งหมายถึงดิสก์จำนวนมาก
Thomas Decaux

44

คุณสามารถใช้ Google ได้โดยตรง

แล้วเรื่องนี้ล่ะ

"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com

81
นั่นไม่ได้หมายความว่า Google มีสิทธิ์เข้าถึง repo ของคุณใช่ไหม ไม่ควรเป็นกรณีสำหรับ repos ส่วนตัว
Joel B

1
มันทำงานใน repos เช่น:"alias agi=" site::https://github.com/robbyrussell/oh-my-zsh
เว็บไซต์

1
@juanpastas คุณสามารถยกตัวอย่างสตริงการค้นหาได้หรือไม่
mrgloom

15
สิ่งนี้ทำให้เข้าใจได้ง่ายขึ้นเมื่อ Google ยังคงให้เกียรติคำพูดเพื่อบังคับการค้นหาที่แน่นอน
Kylotan

1
@FullMetalFist ดูเหมือนว่าใช่ตัวอย่างเช่น"your_string_to_search" site:https://github.com filetype:cpp
mrgloom

17

วันนี้ฉันพยายามค้นหาการจับคู่ที่ตรงกันของfilter classไฟล์ที่มีชื่อlogback.xmlใน repo ใด ๆ ใน Github และฉันก็มาพร้อมกับคำถามต่อไปนี้ซึ่งทำงาน

"filter class" in:file filename:logback.xml

ในการเปิดใช้งานการจับคู่แบบตรงทั้งหมดด้วยเครื่องหมายคำพูดคุณจะต้องติดตามการค้นหาของคุณด้วยตัวปรับแต่ง "in: file" การจับคู่ไม่ชัดเจนคำว่า "คลาส" จะต้องทำตามคำว่า "ตัวกรอง" แต่ดูเหมือนว่าจะมีช่องว่างหรืออักขระสัญลักษณ์ตั้งแต่ 0 ตัวขึ้นไป


14
in:fileผมเห็นความแตกต่างในการทำงานไม่มีเมื่อค้นหาด้วยหรือไม่
Daniel Darabos

2
ฉันไม่ได้ แต่ความจริงที่ว่า "foo bar" ในเครื่องหมายคำพูดไม่ค้นหาคำที่อยู่ติดกันเป็นข่าวที่มีประโยชน์มากสำหรับฉัน
เบนิ Cherniavsky-Paskin

3

การเพิ่มคำตอบของ@ mrgloomหากคุณกำลังมองหารหัสในภาษาการเขียนโปรแกรมเฉพาะใน Github โดยใช้ Google คุณสามารถทำสิ่งนี้ในแถบค้นหาของ Google:

  • ระบุสตริงเฉพาะที่คุณกำลังมองหาโดยใช้โอเปอเรเตอร์การค้นหา "intext:"
  • เพิ่มภาษาการเขียนโปรแกรมที่คุณสนใจโดยใช้ตัวดำเนินการ "ext:" (เช่น "ext: py", "ext: R", "ext: rb", ฯลฯ )
  • ค้นหาใน repos สาธารณะทั้งหมดใน Github โดยใช้ตัวดำเนินการ "site:" mrgloom ที่กล่าวถึง

ตัวอย่าง:

intext:"%% 2 == 0" ext:R site:github.com

ผลลัพธ์ของ Google จากตัวอย่าง


1
intext:".set(" ext:JS site:github.comไม่ทำงาน: /
Aditya MP

คุณถูก! ฉันไม่เข้าใจว่าทำไม ... ฉันลองintext:"set(" inurl:.js site:github.comแล้วมันก็ใช้ได้ดี แต่ไม่จริง
silviaegt

1
ดังนั้นฉันจึงอ่านต่อไปและจะไม่สนใจวงเล็บในการค้นหาของ Googleแต่ฉันไม่เข้าใจว่าทำไมตัวดำเนินการ "ext" จึงไม่ทำงาน ตามนี้มันเป็นนามแฝงที่ไม่มีเอกสารสำหรับ "filetype" แต่ไม่แน่ใจว่าทำไม "js" จะไม่ถูกพิจารณาว่าเป็นหนึ่ง
silviaegt

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.