2014-07-05 6 views
34

Hat jemand eine Shiny App mit Suchfeld Widget erstellt oder gesehen, die kontextuelle Vorschläge gibt, wie Sie tippen, basierend auf Fuzzy passend?Fuzzy-Suchfeld-Widget mit `Shiny` in R?

Bloomberg Terminal verwendet es, Google verwendet es. Eine der möglichen zugrunde liegenden Technologien ist elasticsearch.org 's fuzzy query, mit zwei R-Implementierungen genannt:

  1. duncantl/RElasticSearch
  2. ropensci/elastic

Search Box-Filter kommen mit den grundlegenden Shiny ‚s datatable nicht ganz es geschnitten.

Wenn dies noch etwas mit Shiny zu integrieren ist, irgendeine grobe Anleitung, wie man es baut? Ich vermute, dass es bei großen Tabellen (oder Dokumenten) mit viel Text sehr nützlich wäre, wenn Sie nach bestimmten Zeilen suchen möchten, ohne die gesamte Tabelle anzuzeigen.

+0

Sind Sie das Suchfeld-Widget für eine Datentabelle zu verwenden, suchen? – Anton

+1

Nicht unbedingt. Das Suchfeld von '' datatable' 'von Shiny's war nur eine Illustration dessen, was derzeit existiert und ähnelt entfernt dem, was ich beschrieben habe –

Antwort

1

Vielleicht könnte eine Combobox mit einer Liste von stringdist() gefüttert werden, die die Eingabezeichenfolge mit einer bekannten Liste vergleichen und die Elemente mit den 10 Elementen mit der kürzesten Zeichenabstand bereitstellen würde. Wäre wahrscheinlich sehr ineffizient mit riesigen Listen, aber der Algorithmus ist relativ schnell, wenn man ihn mit einer kurzen Liste vergleicht.

Eine der stringdist Methoden vergleicht sogar basierend auf wie Wörter ausgesprochen werden, nicht sicher, ob das nützlich ist.

2

Wenn Sie selectInput() verwenden, können Sie den Parameter "choices" auf einen Vektor setzen, und der Inhalt dieses Vektors wird als Benutzertyp angezeigt. Das Problem dabei ist, dass der Benutzer nichts auswählen kann, was nicht im Vektor enthalten ist.

UI:

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

SERVER: Referenz dieses Objekt mit

input$reference_name 
+1

danke. werden 'vector_of_search_possibilities' Update-Vorschläge wie-du-tippen (gleiche Erfahrung wie google.com searchbox)? –

+0

ja wird es! Elemente, die die Teilzeichenfolge enthalten, die bereits eingegeben wurde, werden unten wie Vorschläge in Google angezeigt –