Sintassi della query dell'utente finale?

3

Sto facendo uno strumento a linea di comando che consente agli utenti finali di interrogare un database con schemi statici; tuttavia, voglio che gli utenti siano in grado di specificare i matcher booleani nella loro query (in pratica cose come "get rows where (field1 = abcd & field2 = efgh) || field3 = 1234"). Ho fatto una ricerca su Google, ma non sono riuscito a trovare nulla di adatto agli utenti finali, tuttavia, sembra che sarebbe un problema molto comune, quindi sospetto che ci sia una soluzione standard.

  1. Quali sono le "lingue" di query standard (se esistenti) che potrebbero essere appropriate per gli utenti finali?
  2. Quali sono gli standard di fatto (se esistono) di fatto (ad esempio, gli strumenti Unix che risolvono problemi simili).
  3. Mancando le due opzioni precedenti, puoi suggerire una sintassi che sarebbe semplice, concisa e facile da convalidare?
posta weberc2 26.05.2014 - 21:05
fonte

1 risposta

1

Questa è chiamata ricerca sfaccettata . Ci sono strumenti come Solr che possono aiutarti a farlo, ma non vuoi usare una lingua a meno che i tuoi utenti non siano molto tecnici (come i consumatori di un'API del servizio web), nel qual caso usi solo qualcosa di simile a SQL.

Per trarre ispirazione dalle interfacce utente, guarda i risultati di ricerca di aziende con enormi linee di prodotti, come Amazon o Digikey. In sostanza, dopo aver avviato una ricerca, viene presentato un elenco di parametri con cui è possibile perfezionare la ricerca, consentendo di eseguire il drill down fino a ottenere i prodotti desiderati. Questo tipo di interfaccia è probabilmente così familiare per te che potresti non esserti nemmeno reso conto che stavi effettivamente interrogando campi specifici di un database.

Un altro esempio di ricerca dell'utente finale basato su molti campi è rappresentato dai siti di tracciamento dei bug. In genere hanno una ricerca basata su GUI generica e anche un linguaggio di query simile a SQL per ricerche avanzate. Se i tuoi utenti sono tecnici o semi-tecnici, potrebbe essere un buon modello da seguire.

    
risposta data 27.05.2014 - 17:27
fonte

Leggi altre domande sui tag