Motore di ricerca intuitivo per i programmatori? [chiuso]


123

Google è ostile alla ricerca di stringhe letterali con caratteri come $ e #. Esiste un motore di ricerca che supporta la ricerca di stringhe verbatim?

Sono a conoscenza di questa domanda che è stata posta qualche tempo fa, ma non ho ottenuto nessuna buona risposta. Sono pronto a mettere una taglia se ancora non riesco a ottenere una risposta. Ovviamente è del tutto possibile che non ce ne sia uno, ma voglio essere sicuro :)

EDIT: le citazioni non funzionano . Google elimina i simboli anche se citati.

Query di esempio: make "$ <", per la variabile $ <nei makefile.


6
Voglio cercare in Internet proprio come quando uso Google, principalmente per la documentazione. Sto Non la ricerca del codice.
static_rtti

5
Sto cercando frammenti di codice nella documentazione. I motori di ricerca del codice non funzionano per me, perché restituiscono un sacco di codice sorgente irrilevante senza documentazione, il che è inutile per me.
static_rtti

4
Più specificamente, nel caso di "make $ <", il caso d'uso è il seguente: inciampo su $ <in un makefile e voglio sapere cosa fa. Non so come si chiama, quindi non posso usare Google per quello. Se puoi darmi una buona soluzione a questo problema specifico, la taglia è per te .
static_rtti

1
Se non hai fatto questa domanda prima non sei un programmatore.
L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

3
ricerca codice! = ricerca su Internet
L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

Risposte:


77

Prova http://www.symbolhound.com .

Questo sembra risolvere il tuo problema. SymbolHound è un motore di ricerca che non ignora simboli o caratteri speciali nelle query web come fa Google. Non è nemmeno una ricerca nel codice sorgente. Spero che aiuti!


6
Sembra che non funzioni più ...
Dmitry Trofimov

3
"non funziona" in quanto mostra la pagina dei risultati vuota
serv-inc

2
Nel caso in cui symbolhound sia inattivo, prova a stackse . Sono l'autore ed è in lavorazione, ma ormai è utilizzabile.
ren

4

Non posso aiutarti, ma almeno può fornirti una visione (forse la stessa startup andrà a realizzarla).

Assieme è il prototipo di ricerca di un motore di ricerca dedicato per la documentazione del software. L'idea è che la ricerca della documentazione del software sia un'attività specializzata, che necessita di motori di ricerca specializzati. Ad esempio, durante la ricerca della documentazione APi, il motore dovrebbe anche estrarre esempi validi, ad esempio, dai post del blog e mostrarceli. Eccetera.

Per il documento completo, fare riferimento a: "Assieme, Finding and Leveraging Implicit References in a Web Search Interface for Programmers"

PS: Se sei interessato alle ultime ricerche sulla ricerca di software, puoi dare un'occhiata alla serie di workshop SUITE . Siamo anche su Twitter :)


Hmm, Assieme sembra interessante, ma evidentemente era solo per Java, e non sembra essere disponibile in nessuna forma ...
SamB

2

Hai provato Yahoo BOSS ? È un'API di ricerca attualmente gratuita (richiede l'iscrizione), attraverso la quale è possibile utilizzare la ricerca web di Yahoo. Se esegui l'escape di tutti i caratteri rilevanti come descritto nelle FAQ , puoi cercare stringhe verbatim arbitrarie.


1
La pagina a cui ti colleghi non dice niente del genere. Fornisce solo un elenco di caratteri di cui è necessario eseguire l'escape quando viene utilizzato in un URL nei valori degli argomenti BOSS.
mercator


0

Questa probabilmente non è esattamente la risposta che stai cercando, ma sono davvero in sintonia con questo problema e con lo strano distacco che questa domanda sembra incontrare.

In questo caso, hai già alcune informazioni su ciò che stai cercando. Stai cercando una parte specifica di qualche pagina di documentazione per i file make.

ecco la documentazione per i makefile http://www.gnu.org/software/make/manual/make.html

Convenientemente, l'intera documentazione è su una gigantesca pagina html. In Firefox, premere control+f(comando + f su Mac), per visualizzare il widget di ricerca all'interno della pagina. Nel campo di ricerca di Firefox, digita il simbolo che stai cercando. Segnala 37 partite, che puoi consultare individualmente.

A volte, però, la sequenza dei simboli è idiomatica e non è presente nella documentazione di una lingua. Come potrebbe sapere un estraneo, ad esempio, che un $ in javascript di solito si riferisce a jquery, o prototipo, o qualche altra libreria inclusa?

In questo caso, probabilmente c'è una domanda sull'overflow dello stack da qualche parte che lo spiegherebbe. Tuttavia, la ricerca di stackoverflow per un simbolo $ non funziona. Potresti semplicemente fare la domanda, probabilmente otterrai una risposta. (come hai fatto in questo caso).

Penso che dovremmo forse fare una richiesta di funzionalità di stackoverflow? Non è una ricerca web generale, ma stackoverflow è posizionato in modo univoco per rispondere a problemi come questo in un modo in cui il web generale non lo è.

modifica: dopo aver guardato intorno a meta.stackoverflow.com ho trovato una richiesta già esistente: /meta/19870/we-need-to-be-able-to-search-for- punteggiatura-simboli

Sembrerebbe che se premi "fai una domanda" e scrivi

What does the symbol [symbol] in [language] mean?

nel titolo, quindi sposta il cursore sul corpo, COSÌ suggerirà un mucchio di domande già poste, che sono risultati molto migliori rispetto all'utilizzo di "ricerca". Probabilmente troverai la risposta a qualsiasi domanda relativa ai simboli lì. E se non lo fai, vai avanti e pubblica la tua domanda. Sono sicuro che ci sono circa 10 nerd troppo ansiosi che saranno ansiosi di dirti che la domanda è già stata posta e indicarti dove sono le domande duplicate, e solo a costo di alcuni potenziali voti negativi!

Stack Overflow dovrebbe davvero aggiungere questa funzionalità. È ridicolo che non lo sia. Le domande duplicate sono semplicemente il costo che Stackoverflow dovrà accettare per non avere questa funzione.


0

Il più vicino che abbia mai trovato è Cuil, che con i tuoi criteri si avvicina tanto quanto trovare corrispondenze esatte per "make $". Sfortunatamente sono per siti che si arricchiscono velocemente. Ma è meglio di Google con termini come C # e C ++.


0

La risposta, ovviamente, è Google :-) In particolare, Google Code Search . Vedi ad esempio le query per le tue richieste: ( modifica: fissati i collegamenti)

>>> http://www.google.com/codesearch?q= >>>

$ http://www.google.com/codesearch?q=\$

# http://www.google.com/codesearch?q=\#

EDIT: Ok, dal tuo ultimo commento alla domanda, ora capisco il tuo punto. Questo sarebbe utile a molti (per me, solo le pochissime volte nella mia vita che potrei averne bisogno). Ma, per quanto ne so, non c'è modo di farlo. Se cerchi nei forum "ricerca simboli" troverai molte lamentele come questa .

La cosa più vicina che ho trovato è questa, che è abbastanza felice di cercare simboli (ma solo all'interno di quella comunità relativamente piccola, che non è quello che stai cercando): http://perlmonks.org/

Perché non scriviamo un simile motore di ricerca per programmatori ??


10
Voglio cercare in Internet proprio come quando uso Google, principalmente per la documentazione. Sto Non la ricerca del codice.
static_rtti

1
Potremmo forse scrivere un simile motore di ricerca. Quindi dovremmo indicizzare Internet, il che è un problema più grande. Non credo che molti di noi saranno in grado di permettersi data center di dimensioni Google con larghezza di banda a livello di Google, ed è quello che ci serve per iniziare.
David Thornley,

5
Sicuramente non abbiamo bisogno della loro larghezza di banda, né della loro potenza di elaborazione né della loro velocità. I programmatori sono una piccola parte degli utenti web e per un servizio del genere potrebbero aspettare felicemente più secondi rispetto a una comune ricerca su Google. Sicuramente l'archiviazione può essere un problema, ma ancora una volta, se troviamo un modo intelligente di indicizzare solo le pagine "relative alla programmazione", allora siamo a posto: credo che un piccolo cluster possa gestirlo abbastanza facilmente! Ora, sviluppare il giusto algoritmo e il giusto sistema di classificazione potrebbe essere difficile.
Davide

1
Questa risposta è stata accettata automaticamente a causa della taglia? (Puoi non accettarlo, ora che le taglie non causano l'accettazione automatica?)
SamB

32
Questo servizio non è più disponibile. Google Code Search è stato chiuso il 15 gennaio 2012 come parte del loro "processo autunnale".
animuson

0

Ecco cosa uso:

www.koders.com - Indicizza diversi progetti open source, quindi, se voglio sapere come si fa qualcosa, trova nel codice sorgente quello che mi serve. E funziona davvero bene.


1
Non risponde alla mia domanda, leggi attentamente la domanda e i commenti prima di rispondere.
static_rtti

In realtà, ho risposto alla tua domanda :) Hai richiesto un motore di ricerca in grado di supportare query come <$ e così via. E quello che ti ho mostrato fa esattamente questo! :) In realtà, e anche di più, perché poiché è un motore di ricerca basato sugli sviluppatori, tutto il contenuto che otterrai è esattamente codice. Il codice di cui hai bisogno + i commenti ad esso correlati. Forse dovresti provarlo.
Kico Lobo

L'ho provato, lo sapevo molto prima in realtà, ma non risponde alla mia domanda (leggi i commenti di chiarimento per capire perché).
static_rtti

-1

I motori di ricerca open source hanno indicizzatori molto più flessibili di chiunque altro. Se qualcun altro non ha scritto un tokenizer che consente i simboli, è facile scriverne uno tuo. Guarderei Solr / Lucene, Xapian, Sphinx e Ferret.

Inoltre, nessun fastidioso limite di 64 risultati per l'API Google AJAX!


3
Non sta chiedendo un indicizzatore che possa eseguire da solo
reinierpost

1
Inoltre, non sta chiedendo un indicizzatore che possa eseguire da solo. Le soluzioni alternative sono ancora soluzioni.
Justin Johnson,

-3

OK, quindi fammi inserire il mio 2c e vedere se riesco a chiarirlo. Hai, forse, tre ricerche da fare:

  1. Che cos'è "$ <"?
  2. Come si possono cercare stringhe letterali come $ foo o <<<?
  3. Se non conosco il nome di qualcosa e il mio motore di ricerca non mi consente di cercare stringhe letterali, come posso cercarlo?

Il primo caso è facile, è il nome del primo prerequisito di cui ha bisogno un processo di fabbricazione per l'obiettivo che si sta costruendo. Vedi http://www.gnu.org/software/make/manual/make.html#Automatic-Variables per esempio.

Il secondo caso è piuttosto difficile. Google afferma che, con pochissime eccezioni, la punteggiatura viene ignorata (vedere http://www.google.com/support/websearch/bin/answer.py?answer=134479 ). Quindi questo esclude molte delle piccole cose atomiche che hai nel codice come "++" e "<<". Ovviamente, Google deve applicare un po 'di intelligenza a questo, ad esempio consentono la ricerca di "C ++" come unità a sé stante. Anche se forse il mondo sarebbe un posto migliore se il C ++ scomparisse da Internet :)

Il terzo caso appartiene a una via di mezzo tra biblioteconomia e filosofia. Wittgenstein avrebbe senza dubbio qualcosa di conciso da dire come "non possiamo cercare ciò di cui non possiamo parlare", ma pragmaticamente non hai altra scelta che pensare a termini alternativi che potrebbero descrivere il tuo elemento. Ad esempio, "atom", "variabile", "operatore" e simili.

Spero che aiuti!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.