Проблема состоит в том, чтобы заставить поисковую систему использовать тот факт, что 'subversion' и 'svn' очень похожи до такой степени, что они означают одну и ту же вещь.
Возможно, было бы привлекательным вычислить простое сходство между тегами на основе частоты: 'subversion' и 'svn' появляются очень часто вместе, поэтому запрос 'svn' возвращает вопросы, связанные с SVN, но также и редкие вопросы, помеченные только подрывная деятельность '(и наоборот). Однако 'java' и 'c #' также часто встречаются вместе, но по очень разным причинам (они не являются синонимами). Таким образом, сходство по частоте отсутствует.
Ответом на эту проблему может быть сочетание механизмов, предложенных в этой теме вопросов и ответов:
- Фильтрация опечаток путем предложения тегов, когда пользователь вводит их.
- Ведение пользовательской карты синонимов. Эта карта может быть не такой большой, если она предназначена только для синонимов.
- Разрешение поиска по нескольким тегам, так что пользователь может поместить 'subversion svn' или 'subversion && svn' (ну, от программистов до программистов) в поле поиска и получить оба. Это было бы весьма практично, поскольку многие пользователи могут на самом деле попробовать такой подход, когда они не знают, какой термин является наиболее значимым.
@ Ник: Согласен. Вопрос не в том, чтобы спорить с тегами. Теги имеют большой потенциал, но пользователи столкнутся с растущей проблемой, если не удастся выполнить поиск по тегам.
@ Стив: Поддерживать постоянно растущую карту тегов определенно не практично. Так как SO накапливает постоянно растущую сумку меток, как мы можем затенить эту сумку, чтобы сделать поиск меток Q / A еще более полезным и удобным способом?
@ Espo: предложения тегов 'Ajax-powered' на основе существующих тегов, очевидно, доступны в SO при создании вопроса. Это, кстати, очень полезно для выбора тегов и подходящего орфографии (избегая проблемы «подрывной деятельности» против «sbversion» от Стива).