Propiedades del documento de la tabla de archivos de SQL Server

9

Estoy usando Filetable de SQL Server 2012 para almacenar documentos y buscarlos con la búsqueda semántica .

Me preguntaba si hay una manera de enumerar todas las propiedades del documento (metadatos). Hay una manera de permitir que la búsqueda de texto completo indexe y busque en las propiedades del documento. Puedo hacer una lista de propiedades Índices de SQL Server con la siguiente declaración:

 SELECT * FROM sys.registered_search_properties; 

También puedo extender esta lista con SQL o usando un programa .

Lo que no encontré es una forma de enumerar la información real. Lo que estoy buscando es una lista como:

  • Autor : Ruud van de Beeten
  • Título : documento de prueba
  • propiedad personalizada : valor personalizado

¿Alguien puede señalarme en la dirección correcta?

Editar : Bob Beauchemin creó un ticket que describe mi problema. Como el DMV no enumera los valores de las propiedades, no puedo usarlo en mi proyecto.

Terminé usando C # para enumerar propiedades personalizadas con el objeto OleDocumentProperties . Este objeto puede leer propiedades de un documento de Office. Seguiré viendo esta pregunta, esperando una mejor solución.

Ruud van de Beeten
fuente

Respuestas:

10

Parece que (en este momento) lo mejor que podrá hacer es usar las palabras clave en la propiedad, unirlas al documento y cruzar los dedos es suficiente.

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 en ese DMV: http://msdn.microsoft.com/en-us/library/ee677646.aspx

Aquí hay una discusión con Bob Beauchemin y yo sobre el tema: https://twitter.com/bobbeauch/status/275101491084292096

Bob me contó sobre el DMV mencionado anteriormente y prácticamente confirmó que es la forma más probable.

Aquí está el boleto de Connect que Bob creó para este tema: https://connect.microsoft.com/SQLServer/feedback/details/773212/provide-complete-fts-property-values-in-a-dmv-side-table

También hablamos sobre cómo podría ser mejor tener un preprocesador para extraer la metainformación, almacenarla (no estoy seguro de si normaliza el formato de sus documentos o no) y luego reprocesarla si se modifica. Bob sugiere quizás ser capaz de lograr esto con un disparador / proceso SQLCLR, que sería una solución bastante inteligente y ensuciarse las manos.

Gator
fuente
Gracias por tomarse el tiempo de responder mi pregunta. Descubrí el dmv, pero no puedo usarlo. El boleto creado por Bob describe mejor cuál es mi problema.
Ruud van de Beeten
Esta es la mejor (y única) respuesta hasta ahora. Terminé usando C # para enumerar propiedades personalizadas con el objeto OleDocumentProperties . Veré esta pregunta, esperando una solución.
Ruud van de Beeten
5

Encontré la versión beta de un producto que hace esto porque me hicieron la pregunta directamente. No afiliado a esta empresa es de ninguna manera. Consulte "Cómo devolver valores de propiedad de documentos en la búsqueda de texto completo" en: http://www.sqlskills.com/blogs/bobb/ .

Bob Beauchemin
fuente