Свойства файлового файла SQL Server

9

Я использую Filetable для SQL Server 2012 для хранения документов и поиска по ним с помощью семантического поиска .

Мне было интересно, если есть способ перечислить все свойства документа (метаданные). Есть способ включить индексирование полнотекстового поиска и поиск по свойствам документа. Я могу составить список свойств индексов SQL Server с помощью следующего оператора:

 SELECT * FROM sys.registered_search_properties; 

Я также могу расширить этот список с помощью SQL или с помощью программы .

То, что я не нашел, это способ перечислить актуальную информацию. То, что я ищу, это список вроде:

  • Автор : Рууд ван де Битен
  • Название : Тестовый документ
  • пользовательское свойство : пользовательское значение

Может кто-то указать мне верное направление?

Изменить : Боб Бочемин создал билет, описывающий мою проблему. Поскольку DMV не перечисляет значения свойств, я не могу использовать его в своем проекте.

В итоге я использовал C # для отображения пользовательских свойств с помощью объекта OleDocumentProperties . Этот объект может читать свойства из документа Office. Я буду следить за этим вопросом, надеясь на лучшее решение.

Рууд ван де Битен
источник

Ответы:

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

MSDN на этом DMV - http://msdn.microsoft.com/en-us/library/ee677646.aspx

Вот обсуждение с Бобом Боучемином и мной на эту тему: https://twitter.com/bobbeauch/status/275101491084292096

Боб рассказал мне о упомянутом выше DMV и в значительной степени подтвердил, что это наиболее вероятный способ.

Вот билет Connect, созданный Бобом для этой темы: https://connect.microsoft.com/SQLServer/feedback/details/773212/provide-complete-fts-property-values-in-a-dmv-side-table

Мы также продолжим разговор о том, как может быть лучше иметь своего рода препроцессор для извлечения метаинформации, ее сохранения (не уверен, нормализует ли формат ваших документов) или повторной обработки, если она изменена. Боб предлагает, возможно, быть в состоянии осуществить это с помощью триггера / процесса SQLCLR, который был бы довольно умным решением и испортил бы ваши руки.

Gator
источник
спасибо, что нашли время ответить на мой вопрос. Я узнал о DMV, но я не могу его использовать. Билет, созданный Бобом, лучше всего описывает мою проблему.
Рууд ван де Битен
Это лучший (и единственный) ответ на данный момент. В итоге я использовал C # для отображения пользовательских свойств с помощью объекта OleDocumentProperties . Я буду смотреть этот вопрос, надеясь на решение.
Рууд ван де Битен
5

Нашел бета-версию продукта, который делает это, потому что мне задавали вопрос напрямую. Не связан с этой компанией никоим образом. См. «Как вернуть значения свойств документа в полнотекстовом поиске» по адресу: http://www.sqlskills.com/blogs/bobb/ .

Боб Бочемин
источник