我正在使用Server 2012's 可过滤存储文档并使用语义搜索搜索它们。
我想知道是否有一种方法可以列出所有的文档属性(元数据)。在那里,是一种方法允许全文搜索索引和搜索文档属性.我可以使用以下语句列出属性SQL Server索引:
SELECT * FROM sys.registered_search_properties; 我还可以使用SQL或使用程序扩展此列表。
我没有找到的是一种列出实际信息的方法。我要找的是一张清单,比如:
谁能给我指明正确的方向?
编辑: Beauchemin创建了描述我的问题的一张票。由于DMV没有列出属性值,所以我不能在项目中使用它。
最后,我使用C#列出了OleDocumentProperties对象的自定义属性。此对象可以从Office文档读取属性。我会继续关注这个问题,希望能找到更好的解决方案。
发布于 2012-12-02 04:58:31
看起来(此时)最好的方法就是使用属性上的关键字,将它们连接到文档中,并祈祷一下--这就足够了。
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 - http://msdn.microsoft.com/en-us/library/ee677646.aspx的
以下是与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
我们还将继续讨论如何更好地使用预处理器来提取元信息、存储它(不确定您是否将文档的格式正常化),然后如果修改了,则重新处理。Bob建议,也许可以使用SQLCLR触发器/proc实现这一点,这将是一个相当聪明的解决方案,并使您的手变得各种脏的。
发布于 2012-12-12 18:50:05
因为我直接被问到这个问题,所以找到了一个产品的测试版。不附属于这个公司是任何方式。请参阅“如何在全文搜索中返回文档属性值”,at:http://www.sqlskills.com/blogs/bobb/。
https://dba.stackexchange.com/questions/29300
复制相似问题