2009-12-02 6 views
26

Google/GMail/ecc. non offre la ricerca parziale o prefissata (ad esempio roba *) anche se potrebbe essere molto utile. Spesso non trovo una mail in GMail, perché non ricordo l'espressione esatta.Perché Google non offre una ricerca parziale? È perché l'indice sarebbe troppo grande?

So che ci sono argini e simili, ma non è la stessa, specialmente se parliamo di lingue diverse dall'inglese.

Perché Google non aggiunge tale funzione? È perché l'indice esploderebbe? Ma i database offrono una ricerca parziale, quindi sicuramente ci sono buoni algoritmi per affrontare questo problema.

Qual è il problema qui?

risposta

7

Google non archivia effettivamente il testo che cerca. Memorizza termini di ricerca, collegamenti alla pagina e dove nella pagina esiste il termine. Quella struttura dati è indicizzata nel senso tradizionale del database. Scommetto che usare i caratteri jolly renderebbe l'indice piuttosto lento e, come dice la Developer Art, non è molto utile.

+3

Ho trovato un motore di ricerca che può fare prefissi (cose *) e ricerca di prossimità! [Ricerca Web Exalead] (http://www.exalead.com/search/). Fai clic su Ricerca avanzata per trovare queste opzioni. –

+1

@HughBrackett Grazie per il suggerimento, ma temo che Exalead abbia nel frattempo rimosso la ricerca del prefisso dalle sue opzioni anche nella ricerca avanzata. :-(Non si trova da nessuna parte. – syntaxerror

-2

Perché non si può ragionevolmente derivare ciò che si intende con auto *:

Auto? Tappeti? Carote?

Gli algoritmi di Google confrontano i testi dei documenti, anche i link in entrata esterni per determinare di cosa tratta un documento. Con questi caratteri jolly tutti questi algoritmi vanno in spazzatura

+19

deve restituire tutti i risultati in questo caso. L'utente lo vuole, l'utente lo ottiene. –

+0

Suppongo che potrebbe essere fatto tecnicamente, ma per la maggior parte degli umani probabilmente non avrebbe senso. Forse invia una richiesta a Google. Chissà, forse è una grande idea che semplicemente hanno mancato? –

+2

a google manca l'idea del pattern globbing? A malapena la penso così ... –

3

Google Code Search può cercare basato su espressioni regolari, in modo che sappiano come farlo. Ovviamente, la quantità di dati che Code Search deve indicizzare è minima rispetto alla ricerca sul Web. L'utilizzo di espressioni regolari o ricerca con caratteri jolly nella ricerca Web aumenterebbe le dimensioni dell'indice e ridurrebbe le prestazioni a livelli poco pratici.

0

Il segreto per trovare qualsiasi cosa in Google è inserire una combinazione di termini di ricerca (o frasi citate) che sono molto probabilmente presenti nel contenuto che si sta cercando, ma difficilmente compariranno insieme in contenuti non correlati. Un'espressione jolly fa l'opposto di questo. Inserisci semplicemente i termini che ti aspetti che il carattere jolly corrisponda, tenendo presente che Google si arresterà per te. Ai tempi in cui i computer funzionavano a vapore, Lycos (iirc) aveva un pattern matching, ma l'hanno spento diversi anni fa. Presumo che stesse mettendo troppo carico sui loro server.

8

Google cerca le parole parziali. Gmail però no. Dal momento che chiedi qual è il problema qui, la mia risposta è la mancanza di sforzo. Questo problema ha una soluzione che consente di effettuare ricerche in tempo costante e spazio lineare, ma non molto cache friendly: Suffix Trees. Suffix Arrays è un'altra opzione che è più cache-friendly e comunque efficiente nel tempo.

+0

Un'alternativa a Suffix Trees è N-Grams.Quali sono performanti, non sono efficienti in termini di spazio di archiviazione. Ma una soluzione comunque. –

+1

Un'altra alternativa è smettere di usare Gmail e tornare indietro usando Outlook. :-) –

+1

Anche se Google esegue una ricerca parziale __words__, non corrisponderà a __numbers__ parziali! Questo deve essere distinto. Se, ad esempio, cerchi un numero seriale parziale, probabilmente non otterrai alcun risultato pertinente. Ora ho provato quel numero di volte per credere che questo non avrebbe funzionato. – syntaxerror