Condividi tramite


Chiamata a livello di codice di WDS

Nota

Windows Desktop Search 2.x è una tecnologia obsoleta originariamente disponibile come componente aggiuntivo per Windows XP e Windows Server 2003. Nelle versioni successive usare invece Windows Search .

Microsoft Windows Desktop Search (WDS) 2.x può essere sottoposto a query a livello di codice usando i metodi ExecuteQuery e ExecuteSQLQuery nell'interfaccia ISearchDesktop. Il metodo ExecuteQuery restituisce un set di record dall'indice in base al testo della query, alle colonne e alle restrizioni passate come parametri. Il metodo ExecuteSQLQuery restituisce anche un set di record di risultati, ma richiede che il comando Structured Query Language (SQL) esatto venga passato. ExecuteQuery deve essere usato nella maggior parte degli scenari.

Query regolari

Le query regolari sono quelle digitate nella casella di input WDS dall'utente, inclusa tutta la sintassi di query avanzata. La query viene passata a ExecuteQuery insieme alle colonne dello schema WDS 2.x da restituire, alla colonna e all'ordinamento dei risultati e alle clausole da limitare i risultati.

Il metodo ha il formato:

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

Direction Variabile Descrizione
In lpcwstrQuery Testo della query. Questa query è uguale a una query digitata nella casella di testo di ricerca nell'interfaccia utente di Ricerca desktop di Windows.
ad esempio "from:Zara dinner plans"
In lpcwstrColumn Colonne da includere, separate da virgole.
ad esempio "DocTitle, Url"
In lpcwstrSort Colonna override da ordinare seguita da ASC per l'crescente o DESC per la decrescente.
ad esempio "LastAuthor DESC"
In lpcwstrRestriction Restrizioni per aggiungere le clausole WHERE nella selezione di Ricerca desktop di Windows.
ad esempio "Contains(LastAuthor, 'Bill')"
In uscita ppiR Set di record risultanti

Query SQL

Il metodo ISearchDesktop.ExecuteSQLQuery viene usato per inviare query di database WDS dirette. La sintassi per le query è simile a quella usata per SharePoint Server, oltre alla possibilità di usare clausole SQL GROUP BY in stile Monarch. La query viene eseguita sull'indice esattamente come viene passata senza un'elaborazione aggiuntiva della sintassi di query avanzata perché l'API ExecuteQuery esegue.

Il metodo ha il formato:

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

Direction Variabile Descrizione
In lpcwstrSQL Query SQL da eseguire sull'indice WDS
In uscita ppiR Set di record risultanti

Codice C++ di esempio

Nota

QUESTO CODICE E INFORMAZIONI VENGONO FORNITE "COME È" SENZA GARANZIA DI ALCUN TIPO, ESPRESSO O IMPLICITO, INCLUSO MA NON LIMITATO ALLE GARANZIE IMPLICITE DI COMMERCIABILITÀ E/O IDONEITÀ PER UNO SCOPO SPECIFICO.

Copyright (C) Microsoft. Tutti i diritti sono riservati.

#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();
}

Riferimento

Sintassi di ricerca avanzata

Tipi percepiti

Chiamata a WDS da pagine Web