Linuxbär: Auswahl-Anzeige während des Tippens

Hallo,

wie heißt der Fachbegriff für diese Kästchen, die an einem Eingabefeld kleben und Vorschläge zeigen, bei jedem Tastendruck neu?

Möchte bei der Eingabe von Städtenamen so etwas anwenden. Vermutlich geht das über Ajax, aber wie ist die Serverbelastung? Wenn ich mir vorstelle, dass bei jedem Tastendruck von n Besuchern jedesmal die Datenbank geöffnet und ein SQL abgesetzt werden muss ...

Oder ist das eine andere Technik? Kann man ein "in Bereitschft" stehendes Programm vom Browser aus ansprechen?

Gibt es einen Leitfaden zum Einlesen? - Ich  muss dieses Rad ja nicht neu erfinden.

Gruß,
Linuxbär

  1. Hi,

    wie heißt der Fachbegriff für diese Kästchen, die an einem Eingabefeld kleben und Vorschläge zeigen, bei jedem Tastendruck neu?

    autosuggest, autocomplete - vielleicht gibt's auch noch andere Bezeichnungen.

    Möchte bei der Eingabe von Städtenamen so etwas anwenden.

    Bitte nicht! Sowas nervt.

    Vermutlich geht das über Ajax, aber wie ist die Serverbelastung? Wenn ich mir vorstelle, dass bei jedem Tastendruck von n Besuchern jedesmal die Datenbank geöffnet und ein SQL abgesetzt werden muss ...

    Kommt drauf an, wieviele Besucher/Zugriffe du pro Sekunde erwartest. Wenn es nur eine Handvoll ist, hält sich die Belastung doch sehr in Grenzen.

    Ciao,
     Martin

    --
    "Wie geht eigentlich dein neues Auto?"
    "Es geht nicht, es fährt!"
    "Äh, ja. Und wie fährt es?"
    "Och, es geht."
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. [latex]Mae  govannen![/latex]

      autosuggest, autocomplete - vielleicht gibt's auch noch andere Bezeichnungen.

      Möchte bei der Eingabe von Städtenamen so etwas anwenden.

      Bitte nicht! Sowas nervt.

      Wieso nervt es, wenn ich Asch eingebe und dann mit einer einzigen weiteren Aktion Aschaffenburg auswählen kann, ohne den kompletten Namen tippen zu müssen (insbesondere interessant bei Begriffen, bei deren Schreibweise man nicht sicher ist)

      Stur lächeln und winken, Männer!
      Kai

      --
      It all began when I went on a tour, hoping to find some furniture
       Followed a sign saying "Beautiful Chest", led to a lady who showed me her best)
      SelfHTML-Forum-Stylesheet
      1. Hallo,

        autosuggest, autocomplete - vielleicht gibt's auch noch andere Bezeichnungen.

        Möchte bei der Eingabe von Städtenamen so etwas anwenden.
        Bitte nicht! Sowas nervt.
        Wieso nervt es, wenn ich Asch eingebe und dann mit einer einzigen weiteren Aktion Aschaffenburg auswählen kann, ohne den kompletten Namen tippen zu müssen

        weil es genausogut Ascheberg, Aschersleben oder Aschheim sein könnte, was ich eigentlich eigeben möchte. Und da irritiert es mich sehr, wenn bei jedem Tastendruck der Inhalt des Eingabefelds auf magische Weise rumflackert. Auch wenn ich beim Tippen den Blick mehr auf der Tastatur als auf dem Bildschirm habe, nehme ich das Gezappel doch aus dem Augenwinkel wahr.

        (insbesondere interessant bei Begriffen, bei deren Schreibweise man nicht sicher ist)

        Dann probiert man die Schreibweise, von der man *glaubt*, sie sei richtig, und bekommt *dann* eine Liste der möglichen Treffer. Aber bitte nicht schon während der Eingabe, sondern erst beim Absenden der Anfrage.

        Normalerweise kann man solchen Nervensägen ja entgehen, indem man einfach Javascript für die entsprechende Site abstellt. Wenn das aber ausgerechnet eine Website ist, die Javascript für andere Dinge unbedingt braucht, ist man gekniffen.

        Ciao,
         Martin

        --
        Die letzten Worte des Neandertalers:
        Möchte doch zu gern wissen, was in der Höhle ist ...
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. [latex]Mae  govannen![/latex]

          Bitte nicht! Sowas nervt.
          Wieso nervt es, wenn ich Asch eingebe und dann mit einer einzigen weiteren Aktion Aschaffenburg auswählen kann, ohne den kompletten Namen tippen zu müssen

          weil es genausogut Ascheberg, Aschersleben oder Aschheim sein könnte, was ich eigentlich eigeben möchte.

          Ja, und? Diese Orte würden dann - zusemmen mit Aschaffenburg - in der Auswahlliste angezeigt werden, man kann dann mit einem Klick den gewünschten Eintrag auswählen.

          Und da irritiert es mich sehr, wenn bei jedem Tastendruck der Inhalt des Eingabefelds auf magische Weise rumflackert. Auch wenn ich beim Tippen den Blick mehr auf der Tastatur als auf dem Bildschirm habe, nehme ich das Gezappel doch aus dem Augenwinkel wahr.

          Ublicherweise schaut man dann auch hin und hört automatisch auf zu tippen, wenn die gewünschte Wahlmöglichkeit erscheint.

          (i.nsbesondere interessant bei Begriffen, bei deren Schreibweise man nicht sicher ist)

          Dann probiert man die Schreibweise, von der man *glaubt*, sie sei richtig, und bekommt *dann* eine Liste der möglichen Treffer. Aber bitte nicht schon während der Eingabe, sondern erst beim Absenden der Anfrage.

          Ja super. Ein zusätzlichr Roundtrip und Gängelung des Nutzers. Nicht, daß das generell falsch wäre, im Gegenteil sähe ich das für Javascript-Blocker als unverzichtbare Fallback-Lösung; aber als primäre Nutzungsmöglichkeit vollkommen unzureichend. Da suche ich mir als Nutzer beim nächsten Mal falls es möglich  ist eine Website, die es mir bequemer macht.

          Stur lächeln und winken, Männer!
          Kai

          --
          It all began when I went on a tour, hoping to find some furniture
           Followed a sign saying "Beautiful Chest", led to a lady who showed me her best)
          SelfHTML-Forum-Stylesheet
          1. Hallo,

            Und da irritiert es mich sehr, wenn bei jedem Tastendruck der Inhalt des Eingabefelds auf magische Weise rumflackert. Auch wenn ich beim Tippen den Blick mehr auf der Tastatur als auf dem Bildschirm habe, nehme ich das Gezappel doch aus dem Augenwinkel wahr.
            Ublicherweise schaut man dann auch hin und hört automatisch auf zu tippen, wenn die gewünschte Wahlmöglichkeit erscheint.

            nö, normalerweise weiß ich ja, was ich eingeben möchte - also tippe ich das auch ein. Wenn dann auf halbem Weg andere unerwartete Dinge passieren (z.B. automagische Eintragungen im Eingabefeld), oder ich sogar behindert werde (z.B. weil ein anderes Fenster aufpoppt), dann empfinde ich das als störend und ärgerlich - ebenso wie z.B. ein Treppenhauslicht, das per Bewegungsmelder automatisch angeht, obwohl ich es nicht eingeschaltet habe. Oder Verkäufer im Kaufhaus, die ungefragt auf mich zurennen, obwohl ich noch nichts von ihnen will.

            Dann probiert man die Schreibweise, von der man *glaubt*, sie sei richtig, und bekommt *dann* eine Liste der möglichen Treffer. Aber bitte nicht schon während der Eingabe, sondern erst beim Absenden der Anfrage.
            Ja super. Ein zusätzlichr Roundtrip und Gängelung des Nutzers. Nicht, daß das generell falsch wäre, im Gegenteil sähe ich das für Javascript-Blocker als unverzichtbare Fallback-Lösung; aber als primäre Nutzungsmöglichkeit vollkommen unzureichend. Da suche ich mir als Nutzer beim nächsten Mal falls es möglich  ist eine Website, die es mir bequemer macht.

            Tja, da geht es mir exakt umgekehrt. Ich möchte lieber *explizite* Anfragen und Wahlmöglichkeiten als implizite. Die Nervensägen-Lösung meinetwegen, nachdem ich sie durch Setzen eines Häkchens ausdrücklich wünsche.

            Ciao,
             Martin

            --
            Fische, die bellen, beißen nicht.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    2. Möchte bei der Eingabe von Städtenamen so etwas anwenden.

      Bitte nicht! Sowas nervt.

      Ja, mich auch bei Google.

      Aber Städtenamen sehe ich als Ausnahme. Wer trifft denn schon die richtige Bezeichnung aus der Datenbank? Keiner weiss doch, wie manche Städte wirklich heißen.

      Neustadt am Rübenberge oder Neustadt Rbg oder doch Neustadt a.R.? Neustadt/W oder Neustadt (Weinstraße) oder doch Neustadt an der Weinstraße? Groß-Gerau oder Gross-Gerau? Wie könnte ein Leser jemals "München" finden, wenn seine Tastatur kein Ü hat?

      Dabei fällt mir ein:
      Gibt es für MySQL einen Trick, dass ss=ß ae=ä oe=ö usw. findet? Bei der Sortierfolge geht diese Gleichstellung ja irgendwie. Bei mir fehlt der Kringel auf dem A, wie könnte ich die dänische Stadt Åbenrå jemals finden?

      Diese Autosuggestion ist nur ein (wichtiges) Glied in der Kette des Findens und keinesfalls die Lösung. Da muss ich noch Grübeln. Deshalb wollte ich mich nicht in die Autosuggestion reinhängen und neu entwickeln.

      Gruß,
      Linuxbär

      1. Hi,

        Gibt es für MySQL einen Trick, dass ss=ß ae=ä oe=ö usw. findet? Bei der Sortierfolge geht diese Gleichstellung ja irgendwie.

        Richtige Collation verwenden - latin1_german2_ci.
        http://dev.mysql.com/doc/refman/5.1/en/charset-collation-effect.html

        Bei mir fehlt der Kringel auf dem A, wie könnte ich die dänische Stadt Åbenrå jemals finden?

        In dem du nur ein A eingibst - wenn der Seitenbetreiber eine Suchstrategie a la Accent Folding implementiert hat.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Gibt es für MySQL einen Trick, dass ss=ß ae=ä oe=ö usw. findet? Bei der Sortierfolge geht diese Gleichstellung ja irgendwie.

          Richtige Collation verwenden - latin1_german2_ci.
          http://dev.mysql.com/doc/refman/5.1/en/charset-collation-effect.html

          Datenbank ist utf8_unicode_ci, also nix german.

          Gefunden wird "Bad Dürkheim" bei Eingabe von "Bad Durkheim", aber nicht bei Eingabe von "Bad Duerkheim" - das versteht doch kein Laie. Jeder, der kein Ü hat, schreibt "Mueller" mit ue, wie denn sonst?

          "Groß-Gerau" wird weder bei Eingabe von "Gross-Gerau" noch unter "Gros-Gerau" gefunden. Also die (nachvollziehbare) Regel, einen "ähnlichen" Buchstaben einzugeben, gilt nicht.

          Und das vorhandene "Fanø" wird über "fano" nicht gefunden. Da muss ich mir das Thema Accent Folding mal durchlesen. Welcher Aufwand wäre da zu treiben?

          Gruß,
          Linuxbär

          1. Hallo,

            Gefunden wird "Bad Dürkheim" bei Eingabe von "Bad Durkheim", aber nicht bei Eingabe von "Bad Duerkheim" - das versteht doch kein Laie. Jeder, der kein Ü hat, schreibt "Mueller" mit ue

            wenn derjenige sowas wie Umlaute und deren Transkription speziell im Deutschen kennt, ja. Aber dann ist auch die Wahrscheinlichkeit groß, dass er/sie Umlaute direkt verwenden kann.

            wie denn sonst?

            Wer Englisch als Muttersprache hat und die deutschen Eigenheiten nicht kennt, der wird anstatt eines "ü" wohl mangels besserem Wissen einfach ein "u" eingeben.

            "Groß-Gerau" wird weder bei Eingabe von "Gross-Gerau" noch unter "Gros-Gerau" gefunden. Also die (nachvollziehbare) Regel, einen "ähnlichen" Buchstaben einzugeben, gilt nicht.

            Schreibt sich das denn überhaupt mit Bindestrich? Ich dachte, Großgerau schreibe sich zusammen als _ein_ Wort.

            So long,
             Martin

            --
            Drei Sachen vergesse ich immer wieder: Telefonnummern, Geburtstage und ... äääh ...
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Hallo,

              Schreibt sich das denn überhaupt mit Bindestrich? Ich dachte, Großgerau schreibe sich zusammen als _ein_ Wort.

              Wäre ein weiteres Problem, Mehrwortstädte in einem Wort zu schreiben. Aus allen nicht-numerischen und nicht-alfabetischen Zeichen mache ich ein Leerzeichen, mehrere Leerzeichen werden zu einem geschrumpft.

              So hoffe ich, Neustadt/Weinstraße, Neustadt (Weinstraße), Neustadt - Weinstraße anschliessend mit derselben Routine zu finden.

              Aber neustadtweinstraße fällt durchs Raster bis zum Finden eines Auswegs.

              Gruß,
              Linuxbär

              1. Aber neustadtweinstraße fällt durchs Raster bis zum Finden eines Auswegs.

                Wenn Du einen vernünftigen Index hast, der auch Wortteile indiziert, kannst du danach suchen und die Eingabe könnte auch in Teile verhackepetert werden.

              2. Om nah hoo pez nyeetz, Linuxbär!

                Schreibt sich das denn überhaupt mit Bindestrich? Ich dachte, Großgerau schreibe sich zusammen als _ein_ Wort.

                Groß-Gerau in der Wikipedia

                Matthias

                --
                1/z ist kein Blatt Papier.

      2. Aber Städtenamen sehe ich als Ausnahme. Wer trifft denn schon die richtige Bezeichnung aus der Datenbank? Keiner weiss doch, wie manche Städte wirklich heißen.

        Da könnte man aber viele Ausnahmen definieren: Menschennamen, Hundenamen, Namen von Hauptgerichten oder Nachspeisen, Namen von Weinen.

        Vorhalten musst Du die Verknüpfungen zwischen falscher und richtiger Schreibweise sowieso - bzw. einen entsprechend unscharfen Suchalgorithmus. Aber es reicht m.E., wenn man nach der Eingabe eine Neue Seite mit Auswahlmöglichkeiten präsentiert kriegt. Diese flackernden pulldownmenüs sind echt ugly.

      3. مرحبا

        Wie könnte ein Leser jemals "München" finden, wenn seine Tastatur kein Ü hat?

        Ohne Arme keine Kekse.

        mfg

      4. Hey Linuxbär,

        warum läßt du den Besucher ein Freitextfeld ausfüllen? Arbeite mit einer klugen Geohierachie via Select-Feldern. Alles andere ist Quatsch. Wir (Touristikunternehmen) haben eine festgelegte, stets wachsende Geostruktur, die manuell gepflegt werden muß.

        grüße
        creeper

  2. Hallo,

    zu diesem multilingualen Städtefinden-Thema gehört auch das Problem, dass eine Stadt zahlreiche Namen hat.

    Man nehme nur mal München - Munich - Mnichov usw.

    Ein Deutscher würde die französische Stadt Strasbourg vielleicht unter "Straßburg" oder "Strassburg" suchen und die Tchechische Hauptstadt "Praha" unter Prag. Das geht weit hinaus über die Tolerierung von Akzenten oder Umlauten.

    Das muss doch schon mal jemand geregelt haben, wie geht das?

    Ein zusätzliches Suchfeld im Orts-Stammsatz mit allen möglichen Begriffen? Geht da bei ca. 15000 Datensätzen nicht die DB in die Knie, sämtliche, ebentuell prall gefüllte Suchfelder nach "Prague" (= frz. für Praha) zu durchsuchen?

    Oder eine Extra-Übersetzungstabelle nur für Städtenamen?

    Zur Erklärung: Meine Besucher sind hauptsächlich Deutsche und Bewohner angrenzender Länder. Aber es gibt erste Informationen auch für weitere Länder, die touristisch interessant sind. Da kommt dann noch griechisch und kyrillisch (bei der Suche) dazu, aber das stelle ich mal hinten an.

    Andererseits weiss ich wegen [HTTP_ACCEPT_LANGUAGE|, in welcher Sprache die Auskunft erwünscht ist. Wenn ein Mongole mit einem vietnamesischen PC sucht, hat er halt Pech gehabt *frechgrins*

    Gruß,
    Linuxbär

    1. Moin!

      Genau. Man macht das ueber Aliase. Jeder Ortsname muss entsprechend fuer verscheidene Sprachen vorliegen. Berlin, Berlino, ...

      Und gerade hier wuerde ich mich nicht auf irgendwelche Browserangaben verlassen. Ich z.b. bekomme immer englische Seiten vorgesetzt, die ich aber gar nicht will. Genauso gehts dem Touri.

      Das sollte also unabhaengig der Browsersprache laufen. Wenn ich "Mun" eingegeben habe sollte Munich, Munchen (mit Umlaut),  Munster(mit Umlaut), Munster, ... erscheinen. Ich kann z.B. keine Umlaute eingeben, moechte Muenchen aber trotzdem finden und nicht in Munster landen wenn ich nach Muenster will.

      Es ist ein echtes Kreuz mit Staedtenamen. Ich wuerde gar nicht erst versuchen, alle Varianten zu unterstuetzen, ausser es handelt sich um sowas wie die Bahn oder aehnlich wichtige/grosses.

      --
      Signaturen sind blöd!