Twitters Typeaheadは、語句の任意の単語に一致します。したがって、「car」の検索では、「car」に一致する2番目の単語を含む語句から結果を得ることができます。たとえば、名刺でリスト内の車を検索する場合。名刺が現れ、さらに悪くなると車の前に現れます。 IE:Twitter Typeaheadの完全一致の単語とフレーズを作成する方法
Search Term: Car
Suggestions:
Business Card
Car
Car Pool
Carbon
は、私はそれが入力された単語が最も関連性がある(彼らは最初から入力され、まさに一致していない何かを示唆することはありません)のような、よりグーグルとツイッターになりたいので、車のようになりますビジネスカードよりも車を入力するときに関連性があります。
誰かがスペースを入力して2番目の単語を開始するまで、実際には2番目の単語とのマッチングを停止する必要があります。
Business C
私は型付き検索の開始から正確に一致しない単語を照合し、示唆のこの動作をどのように停止することができます:私は、入力された場合を除きしたがって、上記の例の名刺にリストには表示されません。
これを言い替える別の方法は、トークン化またはスペース上の分割から先行入力を停止する方法です。先読みは単語の先頭から常に一致します(^)ので、スペースが単語の境界として認識されない場合、ユーザーが期待するGoogleとtwittersのようにもっと機能します。私は値を持つデータムを返し、先行入力_transformDatum方法は、上分割してトークンをトークン化しないようにトークンに私のデータセットを更新任意の助け
おかげで、 タイラー
UPDATE 1.
スペース。これは素晴らしい作品と、必要に応じて、今それが動作します:
値:アップル、大型類人猿
検索キーワード:Apを 提案:これは私が欲しいもの アップル
です。しかし今、新しい問題があります。
問題:スペースを含む検索語句を使用すると、提案は返されません。
ので今、私は "素晴らしい" と入力したときの提案は、すぐに私はスペースを入力して停止:
検索キーワード:グレート(スペース付き) 提案: (なし)
Iトークンにスペースがないと思っています。ドキュメントが明示的問題でこれを言っていないにもかかわらず:
データムの正規の形式は、valueプロパティと トークンプロパティを持つオブジェクトです。 valueは、基になる の値を表す文字列であり、トークンは、 typeahead.jsを指定したクエリと一致させるのに役立つ文字列の集合です。
https://github.com/twitter/typeahead .js/blob/master/src/dataset.js#L251)。 'toLowerCase()'をクエリに適用するだけで、 'tokenizeQuery'の呼び出しを削除しました。 – franzlorenzon