Как бы вы воспроизвели систему тегов, подобную той, которую использует StackOverflow? - PullRequest
1 голос
/ 05 мая 2011

Я пытаюсь создать систему тегов для модели кадрового агентства, и мне нравится, как SO разделяет теги и ищет оставшиеся фразы.

Как бы вы сравнили теги в таблице с поисковым запросом и т. Д....

Я придумал следующее, но у него есть некоторые ошибки ...

  1. Пользователь вводит поисковый запрос
  2. Полный текст SQL содержит () поискon tbl_tags
  3. Возвращает 5 результатов
  4. Проверьте, существует ли каждая "точная фраза тега" в исходной строке запроса.
  5. Если он существует, добавьте tagID в массив.
  6. Удалить имена тегов из исходной строки поиска ...
  7. Поиск в tbl_people людей со связанными тегами ID и поиск текстовых полей с оставшимся текстом.

Пример поиска:Французские менеджеры проектов с опытом работы с Oracle

Метки: [Французский] [менеджеры проектов] с опытом работы [Oracle]

Остальные тексты: с опытом работы

Теперь проблема возникает, когдаЯ ищу Менеджеров проектов, это оставляет меня с избытком "s" ... и, вероятно, есть и другие ошибки с этой логикой, которые я не могу объяснить ...

Любые идеи о том, как сделать логику совершенной?

Заранее спасибо, я понимаю, что это может быть немного абстрактный вопрос ...

1 Ответ

1 голос
/ 05 мая 2011

Вам не хватает ключевого компонента того, как StackOverflow выполняет поиск.SO требует, чтобы пользователь разграничил теги в строке поиска, явно поставив квадратные скобки вокруг тегов.Тогда (вероятно, упрощенная) логика будет иметь вид.

Удалить метасимволы тега Выполнить полнотекстовый поиск, отфильтрованный по тегам
...