2014-07-05 15 views
34

Qualcuno ha creato o visto un'app Shiny con il widget casella di ricerca che fornisce suggerimenti contestuali durante la digitazione, in base a fuzzy corrispondente a?Widget casella di ricerca fuzzy con `Shiny` in R?

Il terminale Bloomberg lo utilizza, Google lo utilizza. Una delle possibili tecnologie di base è chiamato elasticsearch.org 's fuzzy query, con due implementazioni R:

  1. duncantl/RElasticSearch
  2. ropensci/elastic

filtro Casella di ricerca venire sulle Shiny base s' datatable non abbastanza tagliato.

Se questo è qualcosa che deve ancora essere integrato con Shiny, qualsiasi guida approssimativa su come costruirla? Sospetto che sarebbe estremamente utile su tabelle biggish (o documenti) con molto testo, quando si desidera cercare righe specifiche, senza visualizzare la tabella completa.

+0

Stai cercando di utilizzare questo widget di ricerca di dialogo per una tabella di dati? – Anton

+1

Non necessariamente. La casella di ricerca di Shiny's 'datatable' era solo un'illustrazione di ciò che esiste attualmente e ricorda in remoto ciò che ho descritto –

risposta

1

Forse una casella combinata può essere alimentata da un elenco da stringdist() che confronta la stringa di input con un elenco noto e fornisce gli elementi con i 10 elementi con la distanza di stringa più breve. Sarebbe probabilmente molto inefficiente con elenchi enormi, ma l'algoritmo è abbastanza veloce quando si confronta con una lista breve.

Uno dei metodi stringdist viene persino confrontato in base al modo in cui le parole vengono pronunciate, non è sicuro se ciò sia utile.

2

Se si utilizza selectInput(), è possibile impostare il parametro "choice" su un vettore e il contenuto di tale vettore verrà visualizzato come tipi di utente. Il problema con questo è che l'utente non può selezionare tutto ciò che non è contenuto nel vettore.

UI:

selectInput(
    "reference_name", label = h3("Selection"), choices = vector_of_search_possibilities, selectize = TRUE, selected = "Alabama" 
) 

SERVER: riferimento questo oggetto utilizzando

input$reference_name 
+1

grazie. aggiornerà i suggerimenti di aggiornamento "vector_of_search_possibilities' as-you-type (stessa esperienza della casella di ricerca di google.com)? –

+0

sì, lo farà! gli articoli che contengono la stringa parziale che è già stata digitata appariranno sotto come suggerimenti in google –