Come impaginare i risultati della ricerca in Ricerca di AzureHow to page search results in Azure Search

In questo articolo vengono fornite indicazioni su come utilizzare l'API REST del servizio Ricerca di Azure per implementare elementi standard di una pagina di risultati di ricerca, ad esempio i conteggi totali, il recupero di documenti, i criteri di ordinamento e la navigazione.This article provides guidance on how to use the Azure Search Service REST API to implement standard elements of a search results page, such as total counts, document retrieval, sort orders, and navigation.

In ogni caso citato di seguito, le opzioni relative alla pagina che forniscono dati o informazioni per la pagina dei risultati della ricerca vengono specificati tramite richieste Cerca nel documento inviate al servizio Ricerca di Azure.In every case mentioned below, page-related options that contribute data or information to your search results page are specified through the Search Document requests sent to your Azure Search Service. Le richieste includono comando GET, percorso e parametri di query che indicano al servizio quali elementi sono richiesti e come formulare la risposta.Requests include a GET command, path, and query parameters that inform the service what is being requested, and how to formulate the response.

Nota

Una richiesta valida include diversi elementi, ad esempio URL e percorso del servizio, verbo HTTP, api-version, e così via.A valid request includes a number of elements, such as a service URL and path, HTTP verb, api-version, and so on. Per brevità, gli esempi sono stati tagliati in modo da evidenziare solo la sintassi rilevante per l'impaginazione.For brevity, we trimmed the examples to highlight just the syntax that is relevant to pagination. Vedere la documentazione dell' API REST del servizio Ricerca di Azure per informazioni dettagliate sulla sintassi della richiesta.Please see the Azure Search Service REST API documentation for details about request syntax.

Corrispondenze totali e conteggi delle pagineTotal hits and Page Counts

La visualizzazione del numero totale di risultati ottenuti da una query e la restituzione di tali risultati in blocchi più piccoli è fondamentale per tutte le pagine di ricerca.Showing the total number of results returned from a query, and then returning those results in smaller chunks, is fundamental to virtually all search pages.

In Ricerca di Azure è possibile utilizzare i parametri $count, $top, e $skip per restituire questi valori.In Azure Search, you use the $count, $top, and $skip parameters to return these values. Nell'esempio seguente viene illustrata una richiesta di esempio per le corrispondenze totali, restituite come @OData.count:The following example shows a sample request for total hits, returned as @OData.count:

    GET /indexes/onlineCatalog/docs?$count=true

Recuperare i documenti in gruppi di 15 e visualizzare le corrispondenze totali, a partire dalla prima pagina:Retrieve documents in groups of 15, and also show the total hits, starting at the first page:

    GET /indexes/onlineCatalog/docs?search=*$top=15&$skip=0&$count=true

L'impaginazione dei risultati richiede sia $top che $skip, dove $top specifica il numero di elementi da restituire in un batch e $skip specifica il numero di elementi da ignorare.Paginating results requires both $top and $skip, where $top specifies how many items to return in a batch, and $skip specifies how many items to skip. Nell'esempio seguente, in ogni pagina vengono visualizzati 15 elementi, indicati da salti incrementali nel parametro $skip .In the following example, each page shows the next 15 items, indicated by the incremental jumps in the $skip parameter.

    GET /indexes/onlineCatalog/docs?search=*$top=15&$skip=0&$count=true

    GET /indexes/onlineCatalog/docs?search=*$top=15&$skip=15&$count=true

    GET /indexes/onlineCatalog/docs?search=*$top=15&$skip=30&$count=true

LayoutLayout

In una pagina di risultati della ricerca, è possibile visualizzare un'immagine di anteprima, un sottoinsieme dei campi e un collegamento a una pagina di prodotto completa.On a search results page, you might want to show a thumbnail image, a subset of fields, and a link to a full product page.

In Ricerca di Azure è preferibile utilizzare $select e un comando di ricerca per implementare questa esperienza.In Azure Search, you would use $select and a lookup command to implement this experience.

Per restituire un sottoinsieme di campi per un layout affiancato:To return a subset of fields for a tiled layout:

    GET /indexes/ onlineCatalog/docs?search=*&$select=productName,imageFile,description,price,rating 

Non è possibile eseguire ricerche direttamente in immagini e file multimediali, che devono essere archiviati in un'altra piattaforma di archiviazione, ad esempio la risorsa di archiviazione Blob di Azure, per ridurre i costi.Images and media files are not directly searchable and should be stored in another storage platform, such as Azure Blob storage, to reduce costs. Nell'indice e nei documenti, definire un campo che contiene l'indirizzo URL del contenuto esterno.In the index and documents, define a field that stores the URL address of the external content. È quindi possibile utilizzare il campo come riferimento a un'immagine.You can then use the field as an image reference. L'URL dell'immagine deve essere nel documento.The URL to the image should be in the document.

Per recuperare una pagina di descrizione del prodotto per un evento onClick , utilizzare Documento ricerca per passare la chiave del documento da recuperare.To retrieve a product description page for an onClick event, use Lookup Document to pass in the key of the document to retrieve. Il tipo di dati della chiave è Edm.String.The data type of the key is Edm.String. In questo esempio è 246810.In this example, it is 246810.

    GET /indexes/onlineCatalog/docs/246810

Ordinare per pertinenza, classificazione o prezzoSort by relevance, rating, or price

In genere per impostazione predefinita i risultati vengono ordinati per pertinenza, ma è comune offrire alternative in modo che i clienti possano ridisporre rapidamente i risultati in un ordine di priorità diverso.Sort orders often default to relevance, but it's common to make alternative sort orders readily available so that customers can quickly reshuffle existing results into a different rank order.

In Ricerca di Azure, l'ordinamento è basato sull’espressione $orderby per tutti i campi indicizzati come "Sortable": true.In Azure Search, sorting is based on the $orderby expression, for all fields that are indexed as "Sortable": true.

La pertinenza è fortemente associata ai profili di punteggio.Relevance is strongly associated with scoring profiles. È possibile utilizzare il punteggio predefinito, che si basa sull'analisi del testo e sulle statistiche, per ordinare tutti i risultati, con punteggi più alti ai documenti che contengono più corrispondenze o corrispondenze migliori con un termine di ricerca.You can use the default scoring, which relies on text analysis and statistics to rank order all results, with higher scores going to documents with more or stronger matches on a search term.

Gli ordinamenti alternativi sono in genere associati agli eventi onClick che richiamano il metodo che genera il criterio di ordinamento.Alternative sort orders are typically associated with onClick events that call back to a method that builds the sort order. Si consideri, ad esempio, questo elemento di pagina:For example, given this page element:

Creare un metodo che accetta l'opzione di ordinamento selezionata come input e restituisce un elenco ordinato per i criteri associati a tale opzione.You would create a method that accepts the selected sort option as input, and returns an ordered list for the criteria associated with that option.

Nota

Mentre l'assegnazione del punteggio predefinita è sufficiente per molti scenari, è consigliabile invece basare la pertinenza su un profilo di punteggio personalizzato.While the default scoring is sufficient for many scenarios, we recommend basing relevance on a custom scoring profile instead. Un profilo di punteggio personalizzato offre un modo per favorire gli elementi più vantaggiosi per l'azienda.A custom scoring profile gives you a way to boost items that are more beneficial to your business. Vedere Aggiungere un profilo di punteggio per ulteriori informazioni.See Add a scoring profile for more information.

Esplorazione in base a facetFaceted navigation

L’esplorazione di ricerca è comune in una pagina di risultati, che spesso si trova all'inizio di una pagina o sul lato.Search navigation is common on a results page, often located at the side or top of a page. In Ricerca di Azure, l’esplorazione basata su facet fornisce una ricerca autoindirizzata in base a filtri predefiniti.In Azure Search, faceted navigation provides self-directed search based on predefined filters. Per maggiori informazioni vendere Esplorazione basata su facet in Ricerca di Azure .See Faceted navigation in Azure Search for details.

Filtri a livello di paginaFilters at the page level

Se la progettazione della soluzione include pagine di ricerca dedicate per specifici tipi di contenuto (ad esempio un'applicazione di vendita in linea con servizi elencati nella parte superiore della pagina), è possibile inserire un'espressione di filtro insieme a un evento onClick per aprire una pagina in uno stato prefiltrato.If your solution design included dedicated search pages for specific types of content (for example, an online retail application that has departments listed at the top of the page), you can insert a filter expression alongside an onClick event to open a page in a prefiltered state.

È possibile inviare un filtro con o senza espressione di ricerca.You can send a filter with or without a search expression. Ad esempio, la seguente richiesta filtrerà la marca, restituendo solo i documenti ad essa corrispondenti.For example, the following request will filter on brand name, returning only those documents that match it.

    GET /indexes/onlineCatalog/docs?$filter=brandname eq ‘Microsoft’ and category eq ‘Games’

Vedere Ricerca nei documenti (API di Ricerca di Azure) per altre informazioni sulle espressioni $filter.See Search Documents (Azure Search API) for more information about $filter expressions.

Vedere ancheSee Also