У меня есть веб-приложение ASP.NET и List<Product>
на сервере (в магазине Application[]). Продукт класса имеет свойство Name. Мне нужно дать пользователям возможность искать товары по названиям. Например, если пользователь вводит «компьютер Honda», приложение должно отобразить «Компьютер двигателя Honda Passport 2001 (OEM)». Поиск должен быть очень быстрым, в будущем я добавлю функцию автозаполнения (AJAX).
До сих пор у меня было несколько идей, как решить эту проблему:
Напишите или используйте реализацию с открытым исходным кодом чего-то вроде B-Tree, Trie, Suffix tree, Prefix tree. К сожалению, структуры данных и алгоритмы — не самый сильный мой навык (чертов Гарвард, столько денег впустую).
Используйте поисковую систему — Lucene.NET, Velocity или MemCached.NET. Никогда не использовал их, поэтому я не знаю, будут ли они работать в этом сценарии. Мне не нужно искать синонимы, и у моего приложения нет разрешений на доступ к файловой системе (поэтому нет индексного файла).
Любые советы приветствуются.