SQL Server文件表文档属性


9

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

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

 SELECT * FROM sys.registered_search_properties; 

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

我没有找到列出实际信息的方法。我正在寻找的是一个像这样的列表:

  • 作者Ruud van de Beeten
  • 标题测试文件
  • 自定义属性自定义值

谁能指出我正确的方向?

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

我最终使用C#列出了OleDocumentProperties对象的自定义属性。该对象可以从Office文档中读取属性。我将继续关注这个问题,以期寻求更好的解决方案。

Answers:


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')
);

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

这是与Bob Beauchemin和我的主题讨论:https : //twitter.com/bobbeauch/status/275101491084292096

鲍勃(Bob)告诉我有关上述DMV的信息,并且几乎证实了这是最可能的方法。

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

我们还将继续讨论使用某种预处理器将元信息提取出来,存储起来(不确定是否对文档格式进行标准化),然后在修改后进行重新处理的效果会更好。鲍勃建议也许可以通过SQLCLR触发器/ proc来实现这一点,这将是一个非常聪明的解决方案,并且可以使您一臂之力。


感谢您抽出宝贵时间回答我的问题。我发现了dmv,但无法使用。鲍勃创建的票最能说明我的问题是什么。
Ruud van de Beeten 2012年

这是迄今为止最好的(也是唯一的)答案。我最终使用C#列出了OleDocumentProperties对象的自定义属性。我将看这个问题,希望找到解决方案。
Ruud van de Beeten

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.