Ich habe versucht, Twitter typeahead
und Bloodhound
in mein Projekt zu übernehmen, basierend auf einem funktionierenden Beispiel, aber ich kann den Code unten nicht verstehen.
Der Originalcode sieht wie folgt aus.
%Vor%Das offizielle Dokument sagte gerade:
datumTokenizer - Eine Funktion mit der Signatur (Datum), die transformiert wird ein Datum in ein Array von String-Token. Erforderlich.
queryTokenizer - Eine Funktion mit der Signatur (Abfrage), die transformiert eine Abfrage in ein Array von String-Token. Erforderlich.
Was bedeutet das? Könnte jemand bitte helfen, mir mehr darüber zu erzählen, damit ich besser verstehe?
Ich habe hier einige hilfreiche Informationen gefunden:
Die gebräuchlichsten Tokenisierungsmethoden teilen eine Zeichenfolge in Whitespace- oder Nichtwortzeichen auf. Bloodhound stellt Implementierungen für diese Methoden bereit:
%Vor%Bei der Abfrage-Tokenisierung möchten Sie wahrscheinlich eine der oben genannten Methoden verwenden. Bei der Daten-Tokenisierung möchten Sie etwas etwas fortgeschrittener machen.
Bei Bezugspunkten möchten Sie manchmal, dass Token von mehr als einer Eigenschaft abgeleitet werden. Wenn Sie beispielsweise eine Suchmaschine für GitHub-Repositorys erstellen, ist es wahrscheinlich sinnvoll, Tokens vom Namen, vom Besitzer und von der Primärsprache des Repos ableiten zu lassen:
%Vor%Möglicherweise gibt es auch das Szenario, in dem die Datumstokenisierung im Back-End durchgeführt werden soll. Der beste Weg, dies zu tun ist, nur eine Eigenschaft zu Ihren Daten hinzuzufügen, die diese Token enthält. Sie können dann einen Tokenizer bereitstellen, der nur die bereits vorhandenen Token zurückgibt:
%Vor%Es gibt viele andere Möglichkeiten, wie man Daten in Token zerlegen kann, es kommt nur darauf an, was Sie erreichen wollen.
Es ist bedauerlich, dass diese Information nicht einfacher in der Hauptdokumentation zu finden war.
Es ist das Token, das verwendet wird, um Daten oder Abfragen in ein Array von Wörtern zu teilen, um eine Suche / Übereinstimmung durchzuführen. datumTokenizer bezieht sich auf Ihre Daten, und queryTokenizer bezieht sich auf die durchgeführte Abfrage (normalerweise der eingegebene Text).
Wenn Ihre Daten ein Array von Objekten sind (d. h. json), können Sie mit dem DatenTokenizer angeben, auf welchen Feldern Ihres Objekts die Suche ausgeführt werden soll. Wenn Sie beispielsweise nach Namens- und Codefeldern suchen möchten, können Sie beispielsweise Bloodhound.tokenizers.obj.whitespace(['name','code'])
eingeben oder eine benutzerdefinierte Funktion bereitstellen.
Weitere Informationen finden Sie unter: Ссылка
Tags und Links jquery twitter bloodhound twitter-typeahead