Query in Ricerca di AzureQueries in Azure Search

Quando si inviano richieste di ricerca in Ricerca di Azure, è possibile specificare una serie di parametri insieme alle parole effettive digitate nella casella di ricerca dell'applicazione.When submitting search requests to Azure Search, there are a number of parameters that can be specified alongside the actual words that are typed into the search box of your application. Questi parametri di query consentono di ottenere un controllo più approfondito dell'esperienza di ricerca full-text.These query parameters allow you to achieve some deeper control of the full-text search experience.

Di seguito è riportato un elenco che illustra brevemente gli usi più comuni dei parametri di query in Ricerca di Azure.Below is a list that briefly explains common uses of the query parameters in Azure Search. Per la copertura completa dei parametri di query e il relativo comportamento, vedere le pagine dettagliate per l'API REST e .NET SDK.For full coverage of query parameters and their behavior, please see the detailed pages for the REST API and .NET SDK.

Tipi di queryTypes of queries

Ricerca di Azure offre numerose opzioni per creare query estremamente avanzate.Azure Search offers many options to create extremely powerful queries. I due tipi di query principali che si useranno sono search e filter.The two main types of query you will use are search and filter. Una query search cerca uno o più termini in tutti i campi ricercabili dell'indice e funziona come un motore di ricerca, ad esempio Google o Bing.A search query searches for one or more terms in all searchable fields in your index, and works the way you would expect a search engine like Google or Bing to work. Una query filter valuta un'espressione booleana su tutti i campi filtrabili di un indice.A filter query evaluates a boolean expression over all filterable fields in an index. Diversamente dalle query search, le query filter ricercano la corrispondenza esatta con il contenuto di un campo, quindi supportano la distinzione tra lettere maiuscole e minuscole per i campi di tipo stringa.Unlike search queries, filter queries match the exact contents of a field, which means they are case-sensitive for string fields.

È possibile usare le ricerche e i filtri insieme o separatamente.You can use searches and filters together or separately. Se si usano insieme, prima viene applicato il filtro all'intero indice e quindi viene eseguita la ricerca sui risultati del filtro.If you use them together, the filter is applied first to the entire index, and then the search is performed on the results of the filter. I filtri quindi possono essere un'utile tecnica per migliorare le prestazioni delle query perché riducono il set di documenti che la query di ricerca deve elaborare.Filters can therefore be a useful technique to improve query performance since they reduce the set of documents that the search query needs to process.

La sintassi per le espressioni di filtro è un subset del linguaggio di filtro OData.The syntax for filter expressions is a subset of the OData filter language. Per le query di ricerca è possibile usare la sintassi semplificata o la sintassi di query Lucene, illustrate di seguito.For search queries you can use either the simplified syntax or the Lucene query syntax which are discussed below.

Sintassi di query sempliceSimple query syntax

La sintassi di query semplice è il linguaggio di query predefinito usato in Ricerca di Azure.The simple query syntax is the default query language used in Azure Search. La sintassi di query semplice supporta un numero di operatori di ricerca comuni tra cui gli operatori AND, OR, NOT, frase, suffisso e di precedenza.The simple query syntax supports a number of common search operators including the AND, OR, NOT, phrase, suffix, and precedence operators.

sintassi di query LuceneLucene query syntax

La sintassi di query Lucene consente di usare il linguaggio di query espressivo e ampiamente diffuso sviluppato come parte di Apache Lucene.The Lucene query syntax allows you to use the widely-adopted and expressive query language developed as part of Apache Lucene.

Usando questa sintassi di query è possibile ottenere facilmente le funzionalità seguenti: query con ambito campo, ricerca fuzzy, ricerca di prossimità, aumento priorità dei termini, ricerca di espressione regolare, ricerca con caratteri jolly, elementi fondamentali della sintassi e query con operatori booleani.Using this query syntax allows you to easily achieve the following capabilities: Field-scoped queries, fuzzy search, proximity search, term boosting, regular expression search, wildcard search, syntax fundamentals, and queries using boolean operators.

Ordinamento dei risultatiOrdering results

Quando si ricevono i risultati di una query di ricerca, è possibile richiedere che Ricerca di Azure presenti i risultati ordinati in base ai valori di un campo specifico.When receiving results for a search query, you can request that Azure Search serves the results ordered by values in a specific field. Per impostazione predefinita, Ricerca di Azure ordina i risultati della ricerca in base alle priorità del punteggio di ricerca di ciascun documento, che deriva da TF-IDF.By default, Azure Search orders the search results based on the rank of each document's search score, which is derived from TF-IDF.

Se si vuole che Ricerca di Azure restituisca i risultati ordinati in base a un valore diverso dal punteggio di ricerca, è possibile usare il parametro di ricerca orderby .If you want Azure Search to return your results ordered by a value other than the search score, you can use the orderby search parameter. È possibile specificare il valore del parametro orderby per includere i nomi dei campi e le chiamate alla geo.distance() funzione per ottenere valori geospaziali.You can specify the value of the orderby parameter to include field names and calls to the geo.distance() function for geospatial values. Ogni espressione può essere seguita da asc per indicare che i risultati vengono richiesti in ordine crescente e desc per indicare che i risultati vengono richiesti in ordine decrescente.Each expression can be followed by asc to indicate that results are requested in ascending order, and desc to indicate that results are requested in descending order. Per impostazione predefinita, l'ordinamento è crescente.The default ranking ascending order.

PagingPaging

Ricerca di Azure rende più facile implementare il paging dei risultati della ricerca.Azure Search makes it easy to implement paging of search results. Tramite i parametri top e skip è possibile eseguire in modo uniforme le richieste di ricerca che consentono di ricevere il set totale di risultati della ricerca in subset gestibili e ordinati in grado di abilitare facilmente ottime procedure di ricerca nell'interfaccia utente.By using the top and skip parameters, you can smoothly issue search requests that allow you to receive the total set of search results in manageable, ordered subsets that easily enable good search UI practices. Quando si ricevono questi subset di risultati più piccoli, è anche possibile ottenere il numero di documenti nel set di totale dei risultati della ricerca.When receiving these smaller subsets of results, you can also receive the count of documents in the total set of search results.

Altre informazioni sul paging dei risultati della ricerca sono disponibili nell'articolo Come impaginare i risultati della ricerca in Ricerca di Azure.You can learn more about paging search results in the article How to page search results in Azure Search.

Evidenziazione dei risultatiHit highlighting

In Ricerca di Azure è semplice mettere in evidenza la parte esatta dei risultati della ricerca che corrispondono alla query di ricerca usando i parametri highlight, highlightPreTag e highlightPostTag.In Azure Search, emphasizing the exact portion of search results that match the search query is made easy by using the highlight, highlightPreTag, and highlightPostTag parameters. È possibile specificare quali campi ricercabili devono avere il testo corrispondente evidenziato e specificare anche i tag della stringa esatta da aggiungere all'inizio e alla fine del testo corrispondente restituito da Ricerca di Azure.You can specify which searchable fields should have their matched text emphasized as well as specifying the exact string tags to append to the start and end of the matched text that Azure Search returns.

Prova della sintassi di queryTry out query syntax

Il modo migliore per comprendere le differenze di sintassi consiste nell'inviare query ed esaminarne i risultati.The best way to understand syntax differences is by submitting queries and reviewing results.

  • Usare Esplora ricerche nel portale di Azure.Use Search Explorer in the Azure portal. Distribuendo l'indice di esempio, è possibile eseguire una query dell'indice in pochi minuti usando gli strumenti del portale.By deploying the sample index, you can query the index in minutes using tools in the portal.

  • Usare Telerik Fiddler o Chrome Postman per inviare query a un indice che è stato caricato nel servizio di ricerca.Use Telerik Fiddler or Chrome Postman to submit queries to an index that you have uploaded to your search service. Entrambi gli strumenti supportano le chiamate REST a un endpoint HTTP.Both tools support REST calls to an HTTP endpoint.