SQL Abfrage Windows SystemIndex Syntax

  • SQL

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Darkscale.

    SQL Abfrage Windows SystemIndex Syntax

    Hallo Leute,

    ich bin gerade in einem anderen Fred dabei eine Suchfunktion in eins meiner .net Programme zu implementieren und habe ein Problem mit dem SQL Zugriff auf den Windows 10 SystemIndex. Wer das ganze nachlesen möchte, kann gerne dem Link folgen.

    Es geht darum den Windows Index Dienst für meine Zwecke zu nutzen. Windows nutzt bereits seit einigen Windows Versionen einen Indizierungsdienst um die Suche nach Dateien zu beschleunigen. Den damals gerne abgeschalteten, weil Ressourcen verbrauchenden, Dienst möchte ich nun gerne nutzen, um innerhalb von Indizierten Dateien nach Schlagworten zu suchen. Dieser IndexDienst lässt sich per OleDbConnection bzw. SQL anzapfen. Da ich in Sachen SQL so gar keine Ahnung habe, hoffe ich auf eure Mithilfe. :/

    Was ich bissher geschafft habe ist die Suche nach Dateinamen. Der Code dazu sieht wie folgt aus: :thumbup:

    VB.NET-Quellcode

    1. Dim connection = New OleDbConnection("Provider=Search.CollatorDSO;Extended Properties=""Application=Windows""")
    2. Dim command = New OleDbCommand("SELECT System.ItemPathDisplay FROM SystemIndex " & "WHERE scope ='file:C:\Testfolder\' AND System.ItemName LIKE '%Test%'", connection)


    Die zu Testzwecken erstellte Datei "Testdatei.txt" wird Ordnungsgemäß gefunden und lässt sich als String auslesen. In dieser Testdatei steht das Wort "Findemich", nach dem aber eigentlich gesucht werden soll.
    Das einfach ersetzen von %Test% durch %Findemich% führt aber leider nicht zum Erfolg. Auf der weiteren Suche nach Lösungen bin ich über die Abfrage FREETEXT gestoßen, die allerdings auch nicht funktioniert. :thumbdown:

    VB.NET-Quellcode

    1. Dim connection = New OleDbConnection("Provider=Search.CollatorDSO;Extended Properties=""Application=Windows""")
    2. Dim command = New OleDbCommand("SELECT System.ItemPathDisplay FROM SystemIndex " & "WHERE scope ='file:C:\Testfolder\' AND FREETEXT(Contents, '%Findemich%')", connection)


    Kann mir einer von euch SQL Cracks vielleicht bei der Abfrage helfen? ?(

    Beste Grüße,
    Darkscale
    Wer nichts weiß ist nicht Dumm sondern unwissend!
    VB.NET Neueinsteuger... aber natürlich immer in "Option Explicit" - sonst lernt man nit!
    Ok, habe die Abfrage lösen können.

    VB.NET-Quellcode

    1. Dim connection = New OleDbConnection("Provider=Search.CollatorDSO;Extended Properties=""Application=Windows""")
    2. Dim command = New OleDbCommand("SELECT System.ItemName,System.ItemUrl FROM SystemIndex WHERE SCOPE ='file:C:/Testfolder/' AND CONTAINS('%" & Suchbegriff & "%')", connection)


    Diese Komandozeile sorgt dafür, dass auch innerhalb von Dateien nach dem Suchbegriff gesucht wird.

    Da ich selbst lange danach gesucht habe. Hier die weiteren möglichen Parameter zur SystemIndex Windows Suche:
    docs.microsoft.com/en-us/previ…s.85)?redirectedfrom=MSDN

    Da die Seite nicht mehr gepflegt wird, liste ich die Parameter hier nochmal im Forum auf.
    Spoiler anzeigen

    System.AcquisitionID
    System.ApplicationName
    System.Author
    System.Capacity
    System.Category
    System.Comment
    System.Company
    System.ComputerName
    System.ContainedItems
    System.ContentStatus
    System.ContentType
    System.Copyright
    System.DataObjectFormat
    System.DateAccessed
    System.DateAcquired
    System.DateArchived
    System.DateCompleted
    System.DateCreated
    System.DateImported
    System.DateModified
    System.DefaultSaveLocationIconDisplay
    System.DueDate
    System.EndDate
    System.FileAllocationSize
    System.FileAttributes
    System.FileCount
    System.FileDescription
    System.FileExtension
    System.FileFRN
    System.FileName
    System.FileOwner
    System.FileVersion
    System.FindData
    System.FlagColor
    System.FlagColorText
    System.FlagStatus
    System.FlagStatusText
    System.FreeSpace
    System.FullText
    System.Identity
    System.Identity.Blob
    System.Identity.DisplayName
    System.Identity.IsMeIdentity
    System.Identity.PrimaryEmailAddress
    System.Identity.ProviderID
    System.Identity.UniqueID
    System.Identity.UserName
    System.IdentityProvider.Name
    System.IdentityProvider.Picture
    System.ImageParsingName
    System.Importance
    System.ImportanceText
    System.IsAttachment
    System.IsDefaultNonOwnerSaveLocation
    System.IsDefaultSaveLocation
    System.IsDeleted
    System.IsEncrypted
    System.IsFlagged
    System.IsFlaggedComplete
    System.IsIncomplete
    System.IsLocationSupported
    System.IsPinnedToNameSpaceTree
    System.IsRead
    System.IsSearchOnlyItem
    System.IsSendToTarget
    System.IsShared
    System.ItemAuthors
    System.ItemClassType
    System.ItemDate
    System.ItemFolderNameDisplay
    System.ItemFolderPathDisplay
    System.ItemFolderPathDisplayNarrow
    System.ItemName
    System.ItemNameDisplay
    System.ItemNamePrefix
    System.ItemParticipants
    System.ItemPathDisplay
    System.ItemPathDisplayNarrow
    System.ItemType
    System.ItemTypeText
    System.ItemUrl
    System.Keywords
    System.Kind
    System.KindText
    System.Language
    System.LayoutPattern.ContentViewModeForBrowse
    System.LayoutPattern.ContentViewModeForSearch
    System.LibraryLocationsCount
    System.MileageInformation
    System.MIMEType
    System.Null
    System.OfflineAvailability
    System.OfflineStatus
    System.OriginalFileName
    System.OwnerSID
    System.ParentalRating
    System.ParentalRatingReason
    System.ParentalRatingsOrganization
    System.ParsingBindContext
    System.ParsingName
    System.ParsingPath
    System.PerceivedType
    System.PercentFull
    System.Priority
    System.PriorityText
    System.Project
    System.ProviderItemID
    System.Rating
    System.RatingText
    System.Sensitivity
    System.SensitivityText
    System.SFGAOFlags
    System.SharedWith
    System.ShareUserRating
    System.SharingStatus
    System.Shell.OmitFromView
    System.SimpleRating
    System.Size
    System.SoftwareUsed
    System.SourceItem
    System.StartDate
    System.Status
    System.StatusBarSelectedItemCount
    System.StatusBarViewItemCount
    System.Subject
    System.Thumbnail
    System.ThumbnailCacheId
    System.ThumbnailStream
    System.Title
    System.TotalFileSize
    System.Trademarks


    Thema ist hiermit denke ich geschlossen.
    Wer nichts weiß ist nicht Dumm sondern unwissend!
    VB.NET Neueinsteuger... aber natürlich immer in "Option Explicit" - sonst lernt man nit!