Я пытаюсь реализовать что-то вроде предложения Google на веб-сайте, который я создаю, и мне интересно, как поступить с очень большим набором данных. Конечно, если у вас есть 1000 предметов, вы кешируете их и просто просматриваете их. Но как вы поступите, если у вас есть миллион предметов? Далее предположим, что предметы не одно слово. В частности, я был действительно впечатлен Pandora.com. Например, если вы ищете «мокрый», он возвращает «Мокрый песок», но также и «Жаба». И их автозаполнение БЫСТРО. Моей первой идеей было сгруппировать элементы по первым двум буквам, чтобы у вас было что-то вроде:
Dictionary<string,List<string>>
где ключ - первые две буквы. Это нормально, но что, если я захочу сделать что-то похожее на Pandora и позволить пользователю видеть результаты, соответствующие середине строки? С моей идеей: Wet никогда не будет соответствовать Toad и Wet Sprocket, потому что он будет в ведре «TO» вместо ведра «WE». Так что, возможно, вы могли бы разделить строку и «Жаба мокрой звездочки» перейти в ведра «TO», «WE» и «SP» (убрать слово «THE»), но когда вы Вы говорите о миллионе записей, которые, возможно, должны сказать несколько слов каждое, возможно, вы быстро начнете расходовать много памяти. Хорошо, это был длинный вопрос. Мысли?