2010-01-12 4 views
8

Я работаю над проектом базы знаний с использованием полнотекстовой поисковой системы SQL Server 2008. Проект включен в статьи и файлы, где каждая статья имеет несколько файлов. В этих статьях весь контент чистый html.Как игнорировать теги html в Sql Server 2008 Полнотекстовый поиск

В настоящее время я успешно создал полнотекстовый каталог и индекс SQL Server 2008, а моя база данных совместима с версией 10.

Вот мои вопросы:

1) Можно ли игнорировать HTML-теги, более четко тексты, содержащие в «< ...>», при поиске в этих статьях, потому что если я хочу, чтобы искать DIV , таблица и т. д. не должно быть результата?

2) Статьи будут обновляться в любое время, поэтому полный текстовый индекс должен быть обновлен при вставке новой записи. Достаточно ли установить только «TRACK CHANGES AUTOMATIC» при создании полнотекстового каталога?

3) Мы можем использовать функцию FILESTREAM в дальнейшем, обладает ли SQL Server 2008 хорошей производительностью в файлах, используя полный текстовый индекс? Какие конкретные типы документов SQL Server 2008 хороши при индексировании?

С уважением

+0

привет друг, я думаю, что лучшим решением будет заменить HTML с регулярным выражением„<(.|\n)*?>“с проверкой сборки SQL CLR эта ссылка http://justgeeks.blogspot.com/2008/08/adding-regular-expressions-regex-to-sql.html –

ответ

-1

Пожалуйста, проверьте для них:

1) В SQL Server Full Text, мы можем определить шумовые слова/игнорируемые слова. Вы можете отредактировать файл мира Noise, а затем вам придется перестроить каталог. Таким образом, вы можете поместить все html-теги в качестве шума. Пожалуйста, проверьте

http://msdn.microsoft.com/en-us/library/ms142551.aspx

2) С дорожкой изменяется автоматически включают изменения в текущем полнотекстовом поиске, но ранжирование этой вновь добавленной статья получает изменилось по сравнению с предыдущим. Поэтому до тех пор, пока вы не будете синхронизированы с индексом, он будет сбрасываться вверх и вниз с ранжированием.

3) Насколько я знаю, мы можем реализовать пользовательские фильтры, стеблемеры и разрывы слов и может подключаться к полнотекстовому поисковому запросу SQL Server. По умолчанию я могу не знать полный список, но он выполняет doc и pdf.

Для получения дополнительной информации о SQL Server полнотекстового поиска 2008 пожалуйста, проверьте:

http://technet.microsoft.com/en-us/library/cc721269.aspx

+1

Стоп-слова не должны фильтровать теги html.Если есть текст типа "

"что я дам в качестве временного фильтра, чтобы его фильтровать как" форма "," "и т. д. ?? – Myra

+0

Я думал, что вы хотите просто игнорировать основные теги html. В этой ситуации я бы рекомендовал реализовать Custom Word Breaker и Stemmer, выполнив IWordBreaker, IStemmer и, если необходимо, интерфейсы IFilter, а затем подключился к вашему серверу sql. –

+0

Не могли бы вы привести пример реализации упомянутых вами интерфейсов? – Myra

26

есть фильтр для .htm и .html файлы.

, чтобы увидеть, если у вас есть фильтр установлен запустить эту SQL:

SELECT * FROM sys.fulltext_document_types 

вы должны увидеть:

.htm E0CA5340-4534-11CF-B952-00AA0051FE20 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\nlhtml.dll 12.0.6828.0 Microsoft Corporation 

.html E0CA5340-4534-11CF-B952-00AA0051FE20 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\nlhtml.dll 12.0.6828.0 Microsoft Corporation 

так, если вы можете преобразовать вашу колонку статей для VARBINARY (макс), то вы можете добавить к нему полный текстовый индекс и указать тип документа '.HTML»

когда индекс заполнен, вы можете проверить ключевые слова с помощью этого SQL:

SELECT display_term, column_id, document_count 
FROM sys.dm_fts_index_keywords 
(DB_ID('your_db'), OBJECT_ID('your_table')) 
+0

Ваш первый отзыв от меня :) – Myra

+0

Я не могу добавить полный текстовый индекс в столбце varbinary (max). Я также не могу узнать, как указать тип документа (если вместо этого установить это вместо текста) – Radderz

+0

Кажется, что SQL Management Studio немного ограничена. Полный текстовый индекс может быть создан как простой оператор SQL, а вычисляемые столбцы очень полезны в этом процессе; см. пункт 2 принятого ответа здесь: https://stackoverflow.com/questions/17179772/getting-top-n-latest-entries-from-sql-server-full-text-index – Radderz

Смежные вопросы