如何在Sql Server 2008全文搜索中忽略html标记

Myr*_*yra 8 html sql-server sql-server-2008

我正在使用SQL Server 2008全文搜索引擎开发知识库项目.项目包含在文章和文件中,每篇文章都有多个文件.在这些文章中,整个内容都是纯HTML.

现在,我成功地在SQL Server 2008上创建了全文目录和索引,并且我的数据库与版本10兼容.

这是我的问题:

1)在这些文章中搜索时,是否可以忽略html标签,更清楚地包含"<...>"中的文本,因为如果我想搜索div,table等,应该没有返回结果?

2)文章将随时更新,因此在插入新记录时必须更新全文索引.在创建全文目录时是否足以仅设置"TRACK CHANGES AUTOMATIC"?

3)我们以后可能会使用FILESTREAM功能,SQL Server 2008在使用全文索引的文件上有很好的表现吗?SQL Server 2008在索引方面有哪些特定的文档类型?

问候

小智 27

有一个.htm和.html文件的过滤器.

看看你是否安装了过滤器运行这个sql:

SELECT * FROM sys.fulltext_document_types
Run Code Online (Sandbox Code Playgroud)

你应该看到:

.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
Run Code Online (Sandbox Code Playgroud)

所以,如果你可以将你的文章列转换为varbinary(max),那么你可以在其上添加一个全文索引,并指定一个'.html'的文档类型

索引填充后,您可以使用此sql验证关键字:

SELECT display_term, column_id, document_count
FROM sys.dm_fts_index_keywords
(DB_ID('your_db'), OBJECT_ID('your_table')) 
Run Code Online (Sandbox Code Playgroud)


Nit*_*dha -1

请检查以下内容:

1)在SQL Server Full Text中,我们可以定义干扰词/停用词。您可以编辑噪声世界文件,然后必须重建目录。所以你可以把所有的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

  • 响应被否决:请参阅 DC 的回答,这是正确的方法 (2认同)