我正在使用SQL Server 2008全文搜索引擎开发知识库项目.项目包含在文章和文件中,每篇文章都有多个文件.在这些文章中,整个内容都是纯HTML.
现在,我成功地在SQL Server 2008上创建了全文目录和索引,并且我的数据库与版本10兼容.
这是我的问题:
1)在这些文章中搜索时,是否可以忽略html标签,更清楚地包含"<...>"中的文本,因为如果我想搜索div,table等,应该没有返回结果?
2)文章将随时更新,因此在插入新记录时必须更新全文索引.在创建全文目录时是否足以仅设置"TRACK CHANGES AUTOMATIC"?
3)我们以后可能会使用FILESTREAM功能,SQL Server 2008在使用全文索引的文件上有很好的表现吗?SQL Server 2008在索引方面有哪些特定的文档类型?
问候
我有一个包含 HTML 数据的表格,我想通过 html 过滤器使用全文索引进行搜索
所以我创建了一个索引:
CREATE FULLTEXT CATALOG myCatalog AS DEFAULT
CREATE FULLTEXT INDEX ON myTable (Body TYPE COLUMN Filetype)
KEY INDEX PK_myTable
Run Code Online (Sandbox Code Playgroud)
Body是一个varbinary(max)带有 HTML的列。该Filetype列是一个计算列返回.html。
没有返回任何结果。
我确认.html安装了过滤器。如果我将列转换为“纯文本”索引(不是 html)并仅创建一个“纯文本”索引,则全文索引也已正确安装并且可以正常工作nvarchar。
SQL 日志或 FTS 日志中没有错误。
关键字表是空的!
SELECT *
FROM sys.dm_fts_index_keywords
(DB_ID('myDatabase'), OBJECT_ID('myTable'))
Run Code Online (Sandbox Code Playgroud)
它返回的只是“END OF FILE”符号。
它说“文档计数 35”,这意味着文档已被处理,但未提取任何关键字。
附注。我有 SQL Server Express Edition 2012(具有包括全文在内的所有高级功能)。这可能是原因吗?但同样,“纯”全文搜索工作得很好!
聚苯乙烯。让我的同事在 SQL Express 2016 上对此进行测试 - 结果相同......在我们的生产服务器“企业”版上尝试过 - 相同。
好吧,事实证明全文索引不支持 UNICODE!!在 varbinary 列中。当我将列转换为非 unicode(通过将其转换为 …