в идеале поиск при вводе будет выполнять частичное сопоставление упорядоченных символов, пока не будет достигнута граница слова. Например (в псевдокоде):
var input = getInput();
input =~ s/(.)/$1.*/g;
return find_items(input); // Assuming this takes a regexp as its input
Это означает, что для input = "Shing"
И база данных, содержащая {..., Sine, Shining, 'The Shining', ...}
Выход будет {Shining, 'The Shining'}
Когда достигнута граница слова, соответствие должно измениться, чтобы соответствовать непрерывным частям слова. Грубо говоря:
var input = getInput();
input =~ s/(\w+)/$1.*/g;
return find_items(input); // Assuming this takes a regexp as its input
такой, что для input = "Th Shi"
И та же база данных, что и выше
Выход будет {'The Shining'}
Редактировать (адрес запроса рекомендаций UI): Вы можете сделать хуже, чем смотреть это видео