SQL Server Filetable 文档属性

Ruu*_*ten 9 sql-server full-text-search metadata

我正在使用 SQL Server 2012 的Filetable来存储文档并使用Semantic Search搜索它们。

我想知道是否有办法列出所有文档属性(元数据)。有一种方法可以让全文搜索索引和搜索文档属性。我可以使用以下语句制作 SQL Server 索引的属性列表:

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

我还可以使用 SQL 或使用程序扩展此列表。

我没有找到一种列出实际信息的方法。我正在寻找的是一个列表,如:

  • 作者范尼斯特德Beeten
  • 标题: 测试文档
  • 自定义属性自定义值

任何人都可以指出我正确的方向吗?

编辑:Bob Beauchemin 创建了一张描述我的问题的票。由于 DMV 未列出属性值,因此我无法在我的项目中使用它。

我最终使用 C# 列出带有OleDocumentProperties对象的自定义属性。此对象可以从 Office 文档中读取属性。我会继续关注这个问题,希望有更好的解决方案。

小智 10

看起来(此时)您能做的最好的事情就是使用属性上的关键字,将它们连接到文档并交叉手指就足够了。

SELECT
    keyword,
    display_term,
    column_id, document_id, property_id
FROM sys.dm_fts_index_keywords_by_property
(
    DB_ID('FileTableDB'), 
    OBJECT_ID('FileTableTb')
);
Run Code Online (Sandbox Code Playgroud)

该 DMV 上的 MSDN - http://msdn.microsoft.com/en-us/library/ee677646.aspx

这是我和 Bob Beauchemin 就该主题的讨论:https : //twitter.com/bobbeuch/status/275101491084292096

Bob 告诉了我上面提到的 DMV,并且几乎证实这是最有可能的方式。

这是为此主题创建的 Connect 票证 Bob:https : //connect.microsoft.com/SQLServer/feedback/details/773212/provide-complete-fts-property-values-in-a-dmv-side-table

我们还继续讨论如何更好地使用某种预处理器来提取元信息并存储它(不确定是否对文档的格式进行了规范化),然后在修改后重新处理。Bob 建议也许可以使用 SQLCLR 触发器/过程来解决这个问题,这将是一个相当聪明的解决方案,并且会让你的手变得很脏。


小智 5

找到了一个产品的测试版,因为我被直接问到了这个问题。不隶属于这家公司是任何方式。请参阅“如何在全文搜索中返回文档属性值”,网址为:http : //www.sqlskills.com/blogs/bobb/