SQL Server Dosyalanabilir belge özellikleri


9

Belgeleri saklamak ve Anlamsal Arama ile aramak için SQL Server 2012'nin Filetable'ı kullanıyorum .

Tüm belge özelliklerini (meta veri) listelemek için bir yol olup olmadığını merak ediyordum . Tam Metin Arama dizinine izin vermenin ve belge özellikleri arasında arama yapmanın bir yolu vardır . Aşağıdaki ifadeyle özellikleri SQL Server Indexes bir listesini yapabilirsiniz:

 SELECT * FROM sys.registered_search_properties; 

Bu listeyi SQL ile veya bir program kullanarak da genişletebilirim .

Bulduğum gerçek bilgileri listelemenin bir yolu. Ne aradığım gibi bir liste:

  • Eser sahibi : Ruud van de Beeten
  • Başlık : Test belgesi
  • özel özellik : özel değer

Birisi beni doğru yöne yönlendirebilir mi?

Edit : Bob Beauchemin sorunumu açıklayan bir bilet oluşturdu . DMV özellik değerlerini listelemediğinden, bunu projemde kullanamıyorum.

OleDocumentProperties nesnesi ile özel özellikleri listelemek için C # kullanarak sona erdi . Bu nesne bir Office belgesindeki özellikleri okuyabilir. Daha iyi bir çözüm umarak bu soruyu izlemeye devam edeceğim.

Yanıtlar:


10

Görünüşe göre (şu anda) yapabileceğiniz en iyi şey, mülk üzerindeki anahtar kelimeleri kullanmak, onları dokümana kadar birleştirmek ve parmaklarınızı çaprazlamak yeterlidir.

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

Bu DMV'de MSDN - http://msdn.microsoft.com/en-us/library/ee677646.aspx

İşte Bob Beauchemin ve ben ile ilgili bir tartışma: https://twitter.com/bobbeauch/status/275101491084292096

Bob bana yukarıda belirtilen DMV'den bahsetti ve bunun en olası yol olduğunu doğruladı.

İşte Bob'un bu konu için oluşturduğu Connect bileti: https://connect.microsoft.com/SQLServer/feedback/details/773212/provide-complete-fts-property-values-in-a-dmv-side-table

Ayrıca, meta bilgileri çıkarmak, depolamak (dokümanlarınızın biçimini normalleştirip düzenlemediğinizden emin değilsiniz) ve daha önce değiştirildiyse yeniden işlemek için bir tür önişlemciye sahip olmanın daha iyi olabileceği hakkında konuşmaya devam ediyoruz. Bob belki de bunu oldukça zekice bir çözüm olacak ve ellerinizi her türlü kirletecek bir SQLCLR tetikleyici / proc ile çekebilmenizi önerir.


soruma cevap vermek için zaman ayırdığınız için teşekkür ederim. Ben dmv hakkında öğrendim, ama kullanamıyorum. Bob'un oluşturduğu bilet, sorunumun ne olduğunu en iyi açıklar.
Ruud van de Beeten

Bu şimdiye kadarki en iyi (ve tek) cevaptır. OleDocumentProperties nesnesi ile özel özellikleri listelemek için C # kullanarak sona erdi . Bir çözüm umarak bu soruyu izleyeceğim.
Ruud van de Beeten

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.