2009-04-10 2 views
2

Текст может быть сохранен в базе данных с использованием уценки, bbcode, html и т. Д. Должен ли я удалять любые допустимые теги из условий поиска? У вашего анализатора разметки есть какой-либо способ помочь в решении этой задачи?Как искать столбцы базы данных, которые позволяют разметку?

Я собирался использовать как '% searchword%' запросов. Предлагает ли полный текстовый поиск какие-либо преимущества для такого простого текстового поиска?

Обновление: похоже, существует множество способов сделать это. Я уточню свою ситуацию немного больше. Для веб-сайта, посвященного публикации работы компании, доступно 5 или 7 столбцов varchar для поиска (4 из которых позволят разметку), приблизительно 150 активных объявлений о вакансиях в любой момент времени.

ответ

3

Если у вас есть какой-либо разметки (например, HTML), вы можете не получить отличную лингвистическую точность при индексировании и поиске. В этом случае у вас есть два варианта: предпочтительный метод - просто хранить текстовые данные в столбце varbinary (max) и указывать его тип документа, чтобы он мог быть отфильтрован. Если это не вариант, вы можете подумать об использовании нейтрального wordbreaker и, если возможно, добавить данные разметки (например, «br» в HTML) в списки шумовых слов.

Смотрите также:

Альтернативы:

+0

хорошая ссылка ... так много вариантов! – dotjoe

2

Я бы использовал внешний инструмент поиска в полнотекстовом режиме, например, Lucene.

1

Я бы сохранил полосатую версию этого поля в отдельном поле и использовал полнотекстовый поиск по индексу. Разделенное поле будет обновлено до последней версии с помощью триггеров