Propriedades de documento da tabela de arquivos do SQL Server


9

Estou usando a tabela de arquivos do SQL Server 2012 para armazenar documentos e pesquisá-los com a pesquisa semântica .

Eu queria saber se existe uma maneira de listar todas as propriedades do documento (metadados). Existe uma maneira de permitir que a Pesquisa de texto completo indexe e pesquise propriedades do documento. Eu posso fazer uma lista de propriedades Índices do SQL Server com a seguinte instrução:

 SELECT * FROM sys.registered_search_properties; 

Também posso estender esta lista com SQL ou usando um programa .

O que não encontrei é uma maneira de listar as informações reais. O que estou procurando é uma lista como:

  • Autor : Ruud van de Beeten
  • Título : Documento de teste
  • propriedade customizada : valor customizado

Alguém pode me apontar na direção certa?

Edit : Bob Beauchemin criou um ticket descrevendo meu problema. Como o DMV não está listando os valores da propriedade, não posso usá-lo no meu projeto.

Acabei usando C # para listar propriedades personalizadas com o objeto OleDocumentProperties . Este objeto pode ler propriedades de um documento do Office. Continuarei assistindo a essa pergunta, esperando uma solução melhor.

Respostas:


10

Parece que (no momento) o melhor que você poderá fazer é usar as palavras-chave na propriedade, associá-las ao documento e cruzar os dedos, basta.

SELECT
    keyword,
    display_term,
    column_id, document_id, property_id
FROM sys.dm_fts_index_keywords_by_property
(
    DB_ID('FileTableDB'), 
    OBJECT_ID('FileTableTb')
);

MSDN nessa DMV - http://msdn.microsoft.com/en-us/library/ee677646.aspx

Aqui está uma discussão com Bob Beauchemin e eu sobre o tópico: https://twitter.com/bobbeauch/status/275101491084292096

Bob me contou sobre o DMV mencionado acima e praticamente confirmou que é o caminho mais provável.

Aqui está o tíquete do Connect que Bob criou para este tópico: https://connect.microsoft.com/SQLServer/feedback/details/773212/provide-complete-fts-property-values-in-a-dmv-side-table

Também falamos sobre como seria melhor ter um tipo de pré-processador para extrair as meta informações, armazená-las (não tenho certeza se você normaliza ou não o formato dos seus documentos) e, em seguida, reprocessa se modificado. Bob sugere que talvez seja possível fazer isso com um gatilho / processo SQLCLR, que seria uma solução bastante inteligente e deixaria suas mãos sujas.


obrigado por responder a minha pergunta. Eu descobri o dmv, mas não posso usá-lo. O ticket que Bob criou descreve melhor qual é o meu problema.
Ruud van de Beeten 03/12/12

Esta é a melhor (e única) resposta até agora. Acabei usando C # para listar propriedades personalizadas com o objeto OleDocumentProperties . Vou assistir a essa pergunta, esperando uma solução.
Ruud van de Beeten

5

Encontrei a versão beta de um produto que faz isso porque me fizeram a pergunta diretamente. Não afiliado a esta empresa é de qualquer maneira. Consulte "Como retornar valores de propriedade do documento na pesquisa de texto completo" em: http://www.sqlskills.com/blogs/bobb/ .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.