it-swarm-eu.dev

Cerca: mostra gli elementi che iniziano con o mostra gli elementi che contengono il termine di ricerca?

Quando si cerca un elenco, la ricerca deve restituire elementi che iniziano con il termine di ricerca o deve restituire elementi che contengono il termine di ricerca?

ad esempio

Viene fornito un elenco di marchi di fotocamere e una casella di ricerca. Quando si digita "c" la ricerca ritorna con tutte le parole inizio con "c" o cerca parole con "c" in esso?

Idealmente, vorrei che l'elenco mostrasse "Canon" in alto quando l'utente inserisce "can".

6
Andres

Puoi farlo in entrambi i modi avendo tutte le parole che contengono "c", ma visualizzi le parole che inizio con "c" in alto.

10
Hisham

Penso che potresti confondere due problemi non correlati qui. La ricerca vs. Il filtro è uno e "inizia con" vs. "contiene" è un altro.

La differenza tra ricerca e filtro è fondamentalmente se lo fai al volo o esegui la ricerca solo dopo che l'utente ha dato un comando esplicito per farlo - premi "cerca" o "vai" o altro. Certo, Google ha complicato un po 'le cose con la loro ricerca istantanea, e la considero una ricerca che finge di filtrare :). A giudicare dal tuo esempio, sembra che tu stia davvero parlando di filtraggio.

Quanto a "inizia con" vs. "contiene": quando cerchi in un numero di campi contemporaneamente, o in un ampio set di dati, o quando i campi possono contenere espressioni e non solo parole singole, direi vai con "contiene".

Ad esempio, stai cercando la tua raccolta musicale, attraverso i campi di Artista, Genere, Album, Artista, in migliaia di file e desideri individuare "The Wall". Non ti piacerebbe digitare "The", perché metà delle canzoni, degli album e delle band iniziano con questo. Devi solo digitare "Wall" e finire con forse 10 risultati. Oppure, stai cercando nella rubrica del tuo telefono, per John Smith. Non devi ricordare se è elencato come John Smith o come Smith, John. Vuoi solo digitare "Smith" e trovarlo.

Ma il tuo esempio è diverso. C'è un set molto piccolo di marchi poco flessibili, quindi so solo cosa voglio trovare e non voglio che nulla mi ostacoli. Quindi, se digito N, mi aspetto di trovare Nikon, e sicuramente non Sony o Minolta.

In breve, solo in alcuni casi molto specifici avrei usato "contiene" a livello di lettera. Forse in contesti linguistici come un dizionario online. Ma lo userei sicuramente per cercare espressioni contenenti parole specifiche - e le parole dovrebbero comunque iniziare con le lettere che scrivo, non solo contenerle.

4

L'obiettivo principale è che il tuo pubblico trovi rapidamente quello che sta cercando. Il suggerimento automatico è solo un modo per raggiungere questo obiettivo.
Probabilmente l'utente si aspetta che la casella di ricerca suggerisca parole con qualunque cosa abbia digitato "in" in quanto potrebbe non conoscere il nome esatto del prodotto (ad esempio digitando "EOS" per ottenere le fotocamere Canon). Per opzioni di ricerca più dettagliate dovresti offrire una "Ricerca dettagliata", in cui i tuoi clienti possono specificare cose come: formulazione esatta, escluso, inizio/fine ecc.

Assicurati anche di dare un'occhiata ai modelli di ricerca/navigazione sfaccettati:

http://www.alistapart.com/articles/design-patterns-faceted-navigation
http://www.webusability.co.uk/2010/faceted-search-current-trends-and-usability/

2
Geert

Ci sono molti modi diversi in cui potresti procedere. Se dovessi copiare Google, tuttavia, non utilizzeresti una ricerca con caratteri jolly come suggerisci. Google cerca versioni alternative di una parola radice utilizzando un sofisticato indice di testo completo. Ciò ha vantaggi sia in termini di velocità che di precisione. Poi hanno il loro meccanismo "volevi dire ..." che è davvero eccellente.

Non puoi ricreare qualcosa di buono come Google molto facilmente. Tuttavia, l'indicizzazione full-text è disponibile per la maggior parte delle implementazioni SQL. È persino integrato nel Microsoft SQL Server Express gratuito . Ci sono anche alcuni buoni progetti open source come Lucene (disponibile per Apache) che offrono questo tipo di funzionalità.

Se si desidera combinare la ricerca full-text con una ricerca jolly e i server possono gestire il carico, è possibile farlo. L'idea sarebbe quella di mostrare i risultati della ricerca full-text ordinati per pertinenza, quindi aggiungere eventuali risultati di ricerca con caratteri jolly aggiuntivi alla fine. Questa è la soluzione che ho escogitato per uno dei miei siti.

2
Steve Wortham

Dai un'occhiata a Modello di progettazione di suggerimento automatico di Endeca :

Il suggerimento automatico offre suggerimenti sui termini di ricerca mentre l'utente digita in una casella di ricerca

In particolare:

Richiamare il pannello di suggerimento automatico solo dopo aver inserito un minimo di tre caratteri.

1
Antony Quinn