【发布时间】:2011-06-15 13:25:26
【问题描述】:
我有一个难题摆在我面前,我认为最好先向社区寻求一些指导,然后再制定自己的攻击计划。
我有几千个 XML 文件,需要由 SQL Server 2008 数据库搜索。 XML 文件当前驻留在磁盘上,不属于任何存储库。我所说的“可搜索”的意思是我需要能够做类似的事情(这里是伪代码)
SELECT *
FROM tbl_xmldata
WHERE CONTAINS('xmldata', 'some search word')
tbl_xmldata 将是存储 XML 文件的表,而 xmldata 将是包含实际 XML 数据的列。
最后一个要求(这实际上是一个艰难的要求)是,当找到一个命中时(“命中”是指发现一个 XML 文件包含正在搜索的术语)我需要访问发现搜索词的位置周围的措辞。例如,如果我有一个 XML 文件,其中包含以下内容:
我们认为这些真理是不言而喻的,人人生而平等
我搜索了“不言而喻”这个词,然后我需要能够在找到搜索词之前和之后返回大约 20 个字符。我只提出最后一点是因为 - 无论如何 - 根据我的经验 - SQL Server 的全文索引是有限的,因为它只能告诉您一个术语/单词/短语是否位于特定文档中(假设文档存储在SQL Server 2008 文件流),它无法告诉您术语/单词/短语所在的上下文。
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
xml 文件是否都具有相同的架构?
标签: xml sql-server-2008 indexing