Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
На данный момент система не учитывает смысловую нагрузку тегов и их порядок в посте.
Это приводит к тому, что наиболее рейтинговыми получаются теги, не несущие смысла (союзы, предлоги).
Хотя усложнение алгоритма определение рейтинга приведёт к ещё большему падению производительности.Я бы вам посоветовал вырезать малозначимые слова из запроса, подумать о морфологии слов (резко сократится кол-во похожих тегов), для учета порядка тегов в тексте можно использовать расстояние Левенштейна. Рейтинг тегов можно кэшировать на 5 минут к примеру, это позволит поднять производительность.
на данный момент рейтинг определяется контекстом текущего запроса т.е. набором уже введенных тегов.Код не смотрел, но в принципе можно кэшировать историю Х последних / популярных запросов, с рассчетами рейтинга, что позволит снизить нагрузку.
Хранение пар (контекст, тэг)=>рейтинг займёт очень много места, по сравнению с самими тэгами.
По поводу морфологии и значения слов — существуют ли автоматические алгоритмы, или придётся заводить словарь малозначимых слов?Есть готовые базы словоформ и библиотеки для обработки. Самообучающихся не видел, хотя и не искал.
Клиентская сторона написана на Javascript, без использования сторонних библиотек,С учетом того, что у вас там реализован аякс, анимация, манипуляции с классами и css стилями, вы всерьез считаете это плюсом?
топик мало помогает понять, где и что именно нужно оптимизировать.
AJAX поиск по облаку тегов с динамическим контекстнозависимым рейтингом. Прототип