Twitters Typeahead соответствует любому слову в любом месте фразы, поэтому для поиска результатов «автомобиль» результаты могут исходить из фразы со вторым словом, которое соответствует «автомобилю». Например, при поиске автомобиля в списке с визитной карточкой. Визитная карточка появляется и еще хуже оказывается перед автомобилем. IE:Как сделать Twitter Typeahead Точное совпадение слов и фраз
Search Term: Car
Suggestions:
Business Card
Car
Car Pool
Carbon
Я хочу, чтобы это было больше Google и щебетать, как (они не предполагают, что-то, что не соответствия именно то, что набирается с самого начала), где напечатали слово является наиболее актуальным, так автомобиль будет более актуальным при вводе автомобиля, чем в Business Card.
Я хочу, чтобы он фактически просто остановился, чтобы совместить второе слово, пока кто-то не наберет пробел и не запустит второе слово. Таким образом, в приведенном выше примере визитной карточки не будет отображаться в списке, если я не напечатал:
Business C
Как я могу остановить это поведение сопрягать и предполагая, слова, которые не точное совпадение с начала поиска набранного.
Другой способ сказать, что это будет, как остановить typeahead от токенизации или разделения на пространство. Typeahead всегда соответствует началу слова (^), поэтому, если пространство не было распознано как граница слова, оно будет работать больше, как ожидали пользователи Google и twitters.
Спасибо за любую помощь, Тайлер
UPDATE 1.
Я обновил свой Dataset вернуть Datum, который имеет значение и маркер, так что метод машинописный _transformDatum не токенизировать лексемы разделив на пространство. Это прекрасно работает, и теперь он работает как желаемая:
значения: Apple, Great Ape
Поиск Term: Ap Предложения: Apple,
Это то, что я хочу. Но теперь есть новый вопрос.
ВОПРОС: При использовании поискового запроса с пробелом никаких предложений не возвращается.
Так что теперь, когда я типа "большие" предложения прекращается, как только я печатаю пространство .:
Критерий поиска: Большой (с пробелом) Предложения: (отсутствует)
I Думаю, что у токенов не может быть пробелов. Даже если в документации прямо не говорят об этом в выпуске:
Каноническая форма данности является объектом со свойством стоимости и лексемы собственности. value - это строка, представляющая базовое значение данных, а токены - это набор строк, которые помогают typeahead.js в сопоставлении данных с заданным запросом.
Я решил космический вопрос редактирования метода 'getSuggestion' (https://github.com/twitter/typeahead .js/блоб/ведущий/SRC/dataset.js # L251). Я удалил вызов tokenizeQuery', просто применив 'toLowerCase()' к запросу. – franzlorenzon