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.

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.


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/ .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.