Предположим, у меня есть таблица базы данных со многими именами. Я хотел бы "согнуть матч" против этих имен. Я не уверен, что «гибкий матч» является правильным термином для использования, но давайте пока с этим поговорим. Были подобные дискуссии о "нечетком сопоставлении", но я не очень заинтересован в фонетическом сопоставлении. Меня интересует то, что я бы назвал упорядоченным-подмножеством соответствия.
Я бы хотел, чтобы он работал как QuickSilver (OSX) или Launchy (Windows). Вот несколько примеров совпадений для данной строки поиска:
mit ⇒ M assachusetts I заменитель T технология
ffox ⇒ F ярость лиса
osx ⇒ Mac OS X
мс ⇒ M микро с oft Corporation
Моя конечная цель - создать веб-страницу с автозаполняемым текстовым полем, в котором будут данные, полученные с сервера.
Я уверен, что получу адекватные результаты на стороне клиента, комбинируя функции из jQuery LiveUpdate и / или jQuery QuickSelect .
Мне нужна помощь в том, как наилучшим образом справиться с гибким сопоставлением на стороне сервера с большой таблицей. У меня есть некоторые идеи о том, как создать свой собственный пользовательский индекс, используя алгоритм Quicksilver scoring и, возможно, некоторую логику индекса перестановки, но я бы не стал изобретать колесо, если что-то еще если легко доступны.
В итоге: Каков наилучший способ получить быстрое гибкое сопоставление с таблицей базы данных с несколькими строками?