Applicare filtri e ordinamento
In una soluzione di ricerca gli utenti vogliono spesso perfezionare i risultati delle query applicando filtri e ordinamento in base ai valori dei campi. Azure AI Search supporta entrambe le funzionalità tramite l'API Query di ricerca.
Applicazione di filtri ai risultati
È possibile applicare filtri alle query in due modi:
- Includendo i criteri di filtro in un tipo simple per l'espressione di ricerca.
- Specificando un'espressione filtro OData come parametro$filter con un'espressione di ricerca con sintassi full.
È possibile applicare un filtro a qualsiasi campo filterable nell'indice.
Si supponga, ad esempio, di voler trovare i documenti che contengono il testo London e che nel campo author hanno il valore Reviewer.
È possibile ottenere questo risultato inviando un'espressione di tipo simple per la ricerca:
search=London+author='Reviewer'
queryType=Simple
In alternativa, è possibile usare un filtro OData in un parametro $filter con un'espressione di ricerca Lucene full, come indicato di seguito:
search=London
$filter=author eq 'Reviewer'
queryType=Full
Suggerimento
Le espressioni $Filter OData applicano la distinzione tra maiuscole e minuscole.
Applicazione di filtri con facet
I facet sono un modo utile per presentare agli utenti i criteri di filtro in base ai valori dei campi in un set di risultati. Funzionano in modo ottimale quando un campo ha un numero ridotto di valori discreti che possono essere visualizzati come collegamenti oppure opzioni nell'interfaccia utente.
Per usare i facet, è necessario specificare i campi facetable per i quali si vogliono recuperare i valori possibili in una query iniziale. È ad esempio possibile usare i parametri seguenti per restituire tutti i valori possibili per il campo author:
search=*
facet=author
I risultati di questa query includono una raccolta di valori di facet discreti che è possibile visualizzare nell'interfaccia utente per la selezione da parte dell'utente. In una query successiva è quindi possibile usare il valore di facet selezionato per filtrare i risultati:
search=*
$filter=author eq 'selected-facet-value-here'
Ordinamento dei risultati
Per impostazione predefinita, i risultati vengono ordinati in base al punteggio di pertinenza assegnato dal processo di query, con le corrispondenze più elevate elencate per prime. È tuttavia possibile eseguire l'override di questo ordinamento includendo un parametro orderby OData che specifica uno o più campi sortable e un ordinamento (asc o desc).
Ad esempio, per ordinare i risultati in modo che vengano elencati per primi i documenti modificati più di recente, è possibile usare i valori di parametro seguenti:
search=*
$orderby=last_modified desc
Nota
Per altre informazioni sull'uso dei filtri, vedere Filtri in Azure AI Search. Per informazioni sull'uso dei risultati, tra cui l'ordinamento e l'evidenziazione dei riscontri, vedere Come usare i risultati della ricerca in Azure AI Search.