Programmgesteuertes Aufrufen von WDS

Hinweis

Windows Desktop Search 2.x ist eine veraltete Technologie, die ursprünglich als Add-In für Windows XP und Windows Server 2003 verfügbar war. Verwenden Sie in späteren Versionen Windows Search.

Microsoft Windows Desktop Search (WDS) 2.x kann programmgesteuert mithilfe der ExecuteQuery- und ExecuteSQLQuery-Methoden in der ISearchDesktop-Schnittstelle abgefragt werden. Die ExecuteQuery-Methode gibt basierend auf dem Abfragetext, den Spalten und den Einschränkungen, die als Parameter übergeben werden, einen Datensatzsatz aus dem Index zurück. Die ExecuteSQLQuery-Methode gibt auch einen Datensatzsatz von Ergebnissen zurück, erfordert jedoch, dass der strukturierte Abfragesprache (SQL) übergeben wird. ExecuteQuery sollte in den meisten Szenarien verwendet werden.

Reguläre Abfragen

Reguläre Abfragen sind abfragen, die vom Benutzer in das WDS-Eingabefeld eingegeben werden, einschließlich der erweiterten Abfragesyntax. Die Abfrage wird zusammen mit den zurück zu gebenden WDS 2.x-Schemaspalten, der Spalte und der Reihenfolge zum Sortieren der Ergebnisse sowie allen Klauseln zum Einschränken der Ergebnisse an ExecuteQuery übergeben.

Die -Methode hat die Form:

HRESULT ExecuteQuery(LPCWSTR lpcwstrQuery, LPCWSTR lpcwstrColumn, LPCWSTR lpcwstrSort, LPCWSTR lpcwstrRestriction, Recordset **ppiRs);

Direction Variable BESCHREIBUNG
In lpcwstrQuery Der Abfragetext. Diese Abfrage ist identisch mit einer Abfrage, die in das Suchtextfeld auf der Benutzeroberfläche der Windows Desktopsuche eingefügt wurde.
Beispiel: "from:Zara dinner plans"
In lpcwstrColumn Die ein- und durch Kommas getrennten Spalten.
Beispiel: "DocTitle, Url"
In lpcwstrSort Die zu sortierende Überschreibungsspalte, gefolgt von ASC für aufsteigend oder DESC für absteigend.
Beispiel: "LastAuthor DESC"
In lpcwstrRestriction Einschränkungen zum Anfügen über WHERE-Klauseln in der Windows Desktopsuche auswählen.
Beispiel: "Contains(LastAuthor, 'Bill')"
aus ?n-n-n Der resultierende Datensatzsatz

SQL-Abfragen

Die ISearchDesktop.ExecuteSQLQuery-Methode wird verwendet, um direkte WDS-Datenbankabfragen zu senden. Die Syntax für die Abfragen ähnelt der syntax für SharePoint Server, zusammen mit der Möglichkeit, die GROUP BY-Klauseln SQL Format zu verwenden. Die Abfrage wird für den Index genau so ausgeführt, wie sie übergeben wird, ohne dass die erweiterte Abfragesyntax wie bei der ExecuteQuery-API verarbeitet wird.

https://msdn.microsoft.com/library/default.asp?url=/library/spssdk/html/\_tahoe\_search\_sql\_syntax.asp

Die -Methode hat die Form:

HRESULT ExecuteSQLQuery(LPCWSTR lpcwstrSQL, Recordset **ppiRs);

Direction Variable BESCHREIBUNG
In lpcwstrSQL Die SQL abfrage, die für den WDS-Index ausgeführt werden soll.
aus ?n-n-n Der resultierende Datensatzsatz

Ressourcen:

C++-Beispielcode

Hinweis

DIESER CODE UND DIE INFORMATIONEN WERDEN "WIE BEFÄHRT" BEREITGESTELLT, OHNE JEGLICHE GEWÄHRLEISTUNG, ENTWEDER AUSGEDRÜCKT ODER KONKLUDENT, EINSCHLIEßLICH, ABER NICHT BESCHRÄNKT AUF DIE KONKLUDENTEN GEWÄHRLEISTUNGEN DER HANDELSIERBARKEIT UND/ODER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.

Copyright (C) Microsoft. Alle Rechte vorbehalten.

#include <stdio.h>
#include <wchar.h>
#include <windows.h>
#include <msnldl.h>
#include <adoint.h>
#include <adoguids.h>
 
HRESULT TestExecuteQuery(ISearchDesktop *psd)
{
ADORecordset *prs = NULL;
 
    HRESULT hr;
 
    hr = psd->ExecuteQuery( L"ToName:Moishe", 
                            L"DocTitle,DocFormat", 
                            L"PrimaryDate DESC", 
                            L"Contains('text')", 
                            &prs);
    if (SUCCEEDED(hr))
        prs->Release();
    return hr;
}
 
HRESULT TestExecuteSQLQuery(ISearchDesktop *psd)
{
    ADORecordset *prs = NULL;
    HRESULT hr;

    hr = psd->ExecuteSQLQuery(L"select DocTitle from MyIndex..Scope() where contains('text')", &prs);

    if (SUCCEEDED(hr))
      prs->Release();
    return hr;
}
 
extern "C" int __cdecl wmain( int argc, WCHAR * argv[] )
{
    SCODE sc = CoInitialize(0);
    ISearchDesktop *psd = NULL;
    HRESULT         hr;
     
    if (SUCCEEDED(hr = CoCreateInstance(__uuidof(SearchDesktop), NULL, CLSCTX_INPROC_SERVER, 
                                        __uuidof(ISearchDesktop), (void**)&psd)))
          {
             TestExecuteSQLQuery(psd);
             TestExecuteQuery(psd);
             psd->Release();
          }
          CoUninitialize();
}

Referenz

Erweiterte Abfragesyntax

Wahrgenommene Typen

Aufrufen von WDS über Webseiten