Condividi tramite


Esecuzione di query in Azure AI Search

Azure AI Search supporta costrutti di query per un'ampia gamma di scenari, dalla ricerca di testo in formato libero, ai modelli di query altamente specificati, alla ricerca vettoriale. Tutte le query vengono eseguite su un indice di ricerca che archivia il contenuto ricercabile.

Tipi di query

Modulo query Contenuto ricercabile Descrizione
ricerca full-text Indici invertiti dei termini con token. Le query full-text eseguono l'iterazione sugli indici invertiti strutturati per le analisi veloci, in cui è possibile trovare una corrispondenza in qualsiasi campo, all'interno di un numero qualsiasi di documenti di ricerca. Il testo viene analizzato e tokenizzato per la ricerca full-text.
Ricerca vettoriale Indici vettoriali di incorporamenti generati. Le query vettoriali eseguono l'iterazione sui campi vettoriali in un indice di ricerca.
Ricerca ibrida Tutte le operazioni precedenti, in un singolo indice di ricerca. Combina la ricerca di testo e la ricerca vettoriale in una singola richiesta di query. La ricerca di testo funziona sul contenuto di testo normale nei campi "ricercabili" e "filtrabili". La ricerca vettoriale funziona sul contenuto nei campi vettoriali.
Altri Testo normale e contenuto alfanumerico. Contenuto non elaborato, verbatim estratto dai documenti di origine, filtri di supporto e query di ricerca di criteri come la ricerca geospaziali, la ricerca fuzzy e la ricerca in campi.

Questo articolo mette a fuoco l'ultima categoria: query che funzionano su testo normale e contenuto alfanumerico, estratte intatte dall'origine originale, usate per i filtri e altri moduli di query specializzati.

Completamento automatico e query suggerite

Il completamento automatico o i risultati suggeriti sono alternative a search che generano richieste di query successive in base a input di stringa parziali (dopo ogni carattere) in un'esperienza search-as-you-type. È possibile usare i parametri autocomplete e suggestions insieme o separatamente, come descritto in questa procedura dettagliata, ma non è possibile usarli con search. Sia i termini completati che le query suggerite derivano dal contenuto dell'indice. Il motore non restituisce mai una stringa o un suggerimento inesistente nell'indice. Per altre informazioni, vedere Completamento automatico (API REST) e Suggerimenti (API REST).

I filtri sono ampiamente usati nelle app basate su Azure AI Search. Nelle pagine dell'applicazione i filtri vengono spesso visualizzati come facet nelle strutture di spostamento dei collegamenti per il filtro diretto dall'utente. I filtri vengono usati internamente anche per esporre sezioni di contenuto indicizzato. Ad esempio, è possibile inizializzare una pagina di ricerca usando un filtro per una categoria di prodotti o una lingua, se un indice contiene campi sia in inglese che in francese.

Potrebbe anche essere necessario filtrare per richiamare un modulo di query specializzato, come descritto nella tabella seguente. È possibile usare un filtro con una ricerca non specificata (search=*) o con una stringa di query che include termini, frasi, operatori e modelli.

Scenario di filtro Descrizione
Filtri di intervallo In Azure AI Search, le query di intervallo vengono create usando il parametro di filtro. Per altre informazioni ed esempi, vedere Esempio di filtro intervallo.
Esplorazione in base a facet In esplorazione in base a facet, gli utenti possono selezionare facet. Se supportato da filtri, i risultati della ricerca si restringono a ogni clic. Ogni facet è supportato da un filtro che esclude i documenti che non soddisfano più i criteri forniti dal facet.

Nota

Il testo usato in un'espressione di filtro non viene analizzato durante l'elaborazione delle query. Si presuppone che l'input di testo sia un modello di caratteri con distinzione tra maiuscole e minuscole verbatim che ha esito positivo o negativo nella corrispondenza. Le espressioni di filtro vengono costruite usando la sintassi OData e passate in un parametro filter in tutti i campi filtrabili nell'indice. Per altre informazioni, vedere Filtri in Azure AI Search.

La ricerca geospaziale corrisponde alle coordinate di latitudine e longitudine di una posizione per l'esperienza di ricerca "trova vicino a me" o basata su mappa. In Azure AI Search, è possibile implementare la ricerca geospaziale seguendo questa procedura:

La ricerca geospaziale usa chilometri per la distanza. Le coordinate sono specificate in questo formato: (longitude, latitude).

Ecco un esempio di filtro per la ricerca geospaziale. Questo filtro trova altri campi Location nell'indice di ricerca con coordinate all'interno di un raggio di 300 chilometri del punto geografico (in questo esempio Washington D.C.). Restituisce le informazioni sull'indirizzo nel risultato e include una clausola facoltativa facets per la navigazione automatica in base alla posizione.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-07-01
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

Per altre informazioni ed esempi, vedere Esempio di ricerca geospaziale.

Ricerca documento

A differenza dei moduli di query descritti in precedenza, questo recupera un singolo documento di ricerca in base all'ID, senza ricerca o analisi dell'indice corrispondente. Viene richiesto e restituito solo il documento. Quando un utente seleziona un elemento nei risultati della ricerca, il recupero del documento e il popolamento di una pagina dei dettagli con campi è una risposta tipica e la ricerca di un documento è l'operazione che lo supporta.

Ricerca avanzata: fuzzy, carattere jolly, prossimità, regex

Un modulo di query avanzato dipende dal parser Lucene completo e dagli operatori che attivano un comportamento di query specifico.

Tipo di query Utilizzo Esempi e ulteriori informazioni
Ricerca con campi searchparameter,queryType=full Compilare un'espressione di query composta destinata a un singolo campo.
Esempio di ricerca con campi
ricerca fuzzy searchparameter,queryType=full Corrispondenze in base alle esigenze di ortografia o di costruzione simile.
Esempio di ricerca fuzzy
ricerca di prossimità searchparameter,queryType=full Trova i termini vicini tra loro in un documento.
Esempio di ricerca per prossimità
aumento priorità termini searchparameter,queryType=full Classifica un documento superiore se contiene il termine con boosting, rispetto alle altre che non lo contengono.
Esempio di aumento della priorità dei termini
ricerca basata su espressioni regolari searchparameter,queryType=full Corrispondenze in base al contenuto di un'espressione regolare.
Esempio di espressione regolare
ricerca con caratteri jolly o prefisso search parametro con *~ o ?, queryType=full Corrispondenze basate su un prefisso e una tilde (~) o un singolo carattere (?).
Esempio di ricerca con caratteri jolly

Passaggi successivi

Per un'analisi più dettagliata dell'implementazione delle query, vedere gli esempi per ogni sintassi. Se non si ha familiarità con la ricerca full-text, è possibile che il motore di query faccia altrettanto bene.