Автозаполнение AJAX довольно просто реализовать. Тем не менее, мне интересно, как обрабатывать предложения смарт-тегов, как это на SO.
Чтобы уточнить разницу между автозаполнением и предложением :
- автозаполнение : foo [foobar, foobaz]
- предложение : foo [barfoo, foobar, foobaz] или, что еще лучше, с функцией «Вы имели в виду»: [barfoo, foobar, foobaz, fobar, fobaz]
Полагаю, мне нужен полнотекстовый поиск по тегам (индексируются все буквы, а не только слова). Не будет проблем сделать это с помощью регулярных выражений или других шаблонов для ограниченного числа тегов (даже на стороне клиента).
Но как реализовать эту функцию для большого количества тегов?
Есть ли какая-то конкретная причина (помимо URL), что теги на SO разделены тире? А как насчет символов Юникода в тегах?
Я храню теги в таблице со следующими столбцами: id, tagname.
Мой запрос SQL возвращает объекты со следующими полями: id, tagname, count
(я использую Doctrine ORM и pgsql в качестве драйвера БД по умолчанию.)