Domande frequenti su Azure ricerca cognitivaAzure Cognitive Search - frequently asked questions (FAQ)

Risposte alle domande frequenti su concetti, codice e scenari correlati alla ricerca cognitiva di Azure.Find answers to commonly asked questions about concepts, code, and scenarios related to Azure Cognitive Search.

PiattaformaPlatform

In che modo Azure ricerca cognitiva è diverso dalla ricerca full-text nel DBMS?How is Azure Cognitive Search different from full text search in my DBMS?

Azure ricerca cognitiva supporta più origini dati, l' analisi linguistica per molti linguaggi, l' analisi personalizzata per input di dati interessanti e insoliti, icontrolli di rango di ricerca tramite i profili di Punteggioe le funzionalità dell'esperienza utente, ad esempio typeahead, hit highlighting e navigazione in base a facet.Azure Cognitive Search supports multiple data sources, linguistic analysis for many languages, custom analysis for interesting and unusual data inputs, search rank controls through scoring profiles, and user-experience features such as typeahead, hit highlighting, and faceted navigation. Include anche altre funzionalità, come i sinonimi e la sintassi di query avanzata, ma queste non sono in genere funzionalità di differenziazione del servizio.It also includes other features, such as synonyms and rich query syntax, but those are generally not differentiating features.

È possibile sospendere il servizio ricerca cognitiva di Azure e arrestare la fatturazione?Can I pause Azure Cognitive Search service and stop billing?

Non è possibile sospendere il servizio.You cannot pause the service. Quando viene creato il servizio, vengono allocate risorse di calcolo e di archiviazione per l'uso esclusivo.Computational and storage resources are allocated for your exclusive use when the service is created. Non è possibile rilasciare e recuperare le risorse su richiesta.It's not possible to release and reclaim those resources on-demand.

Operazioni di indicizzazioneIndexing Operations

Spostare, eseguire il backup e ripristinare gli indici o gli snapshot degli indici?Move, backup, and restore indexes or index snapshots?

Durante la fase di sviluppo, potrebbe essere necessario spostare l'indice tra i servizi di ricerca.During the development phase, you may want to move your index between search services. Ad esempio, è possibile usare un piano tariffario Basic o gratuito per sviluppare l'indice e quindi spostarlo nel livello standard o superiore per l'uso in produzione.For example, you may use a Basic or Free pricing tier to develop your index, and then want to move it to the Standard or higher tier for production use.

In alternativa, è possibile eseguire il backup di uno snapshot dell'indice in file che possono essere usati per ripristinarli in un secondo momento.Or, you may want to backup an index snapshot to files that can be used to restore it later.

È possibile eseguire tutte queste operazioni con il codice di esempio index-backup-restore in questo repository di esempio di Azure ricerca cognitiva .NET.You can do all these things with the index-backup-restore sample code in this Azure Cognitive Search .NET sample repo.

È anche possibile ottenere una definizione di indice in qualsiasi momento usando l'API REST di Azure ricerca cognitiva.You can also get an index definition at any time using the Azure Cognitive Search REST API.

Non esiste attualmente alcuna funzionalità di estrazione, snapshot o ripristino di un indice incorporato nel portale di Azure.There is currently no built-in index extraction, snapshot, or backup-restore feature in the Azure portal. Tuttavia, si sta valutando di aggiungere la funzionalità di backup e ripristino in una versione futura.However, we are considering adding the backup and restore functionality in a future release. Se si desidera visualizzare il supporto per questa funzionalità, eseguire il cast di un voto sulla voce dell'utente.If you want show your support for this feature, cast a vote on User Voice.

È possibile ripristinare l'indice o il servizio dopo l'eliminazione?Can I restore my index or service once it is deleted?

No, se si elimina un indice o un servizio di Azure ricerca cognitiva, non è possibile recuperarlo.No, if you delete an Azure Cognitive Search index or service, it cannot be recovered. Quando si elimina un servizio ricerca cognitiva di Azure, tutti gli indici nel servizio vengono eliminati in modo permanente.When you delete an Azure Cognitive Search service, all indexes in the service are deleted permanently. Se si elimina un gruppo di risorse di Azure che contiene uno o più servizi ricerca cognitiva di Azure, tutti i servizi vengono eliminati in modo permanente.If you delete an Azure resource group that contains one or more Azure Cognitive Search services, all services are deleted permanently.

Per ricreare risorse quali indici, indicizzatori, origini dati e skillsets, è necessario ricrearle dal codice.Recreating resources such as indexes, indexers, data sources, and skillsets requires that you recreate them from code.

Per ricreare un indice, è necessario reindicizzare i dati da origini esterne.To recreate an index, you must re-index data from external sources. Per questo motivo, è consigliabile mantenere una copia master o un backup dei dati originali in un altro archivio dati, ad esempio il database SQL di Azure o Cosmos DB.For this reason, it is recommended that you retain a master copy or backup of the original data in another data store, such as Azure SQL Database or Cosmos DB.

In alternativa, è possibile usare il codice di esempio index-backup-restore in questo repository di esempio di Azure ricerca cognitiva .NET per eseguire il backup di una definizione di indice e di un indice di snapshot in una serie di file JSON.As an alternative, you can use the index-backup-restore sample code in this Azure Cognitive Search .NET sample repo to back up an index definition and index snapshot to a series of JSON files. Successivamente, è possibile utilizzare lo strumento e i file per ripristinare l'indice, se necessario.Later, you can use the tool and files to restore the index, if needed.

È possibile eseguire l'indicizzazione dalle repliche di database SQL (si applica agli indicizzatori del database SQL di Azure)Can I index from SQL Database replicas (Applies to Azure SQL Database indexers)

Non esistono restrizioni all'utilizzo di repliche primarie o secondarie come origini dati quando si genera un indice da zero.There are no restrictions on the use of primary or secondary replicas as a data source when building an index from scratch. L'aggiornamento di un indice con aggiornamenti incrementali (in base ai record modificati) richiede tuttavia la replica primaria.However, refreshing an index with incremental updates (based on changed records) requires the primary replica. Questo requisito deriva dal database SQL, che garantisce il rilevamento delle modifiche solo nelle repliche primarie.This requirement comes from SQL Database, which guarantees change tracking on primary replicas only. Se si tenta di usare le repliche secondarie per un carico di lavoro di aggiornamento di indice, non c'è garanzia di ottenere tutti i dati.If you try using secondary replicas for an index refresh workload, there is no guarantee you get all of the data.

Operazioni di ricercaSearch Operations

È possibile eseguire ricerche tra più indici?Can I search across multiple indexes?

No, questa operazione non è supportata.No, this operation is not supported. La ricerca avviene sempre nell'ambito di un singolo indice.Search is always scoped to a single index.

È possibile limitare l'accesso all'indice di ricerca in base all'identità dell'utente?Can I restrict search index access by user identity?

È possibile implementare filtri di sicurezza con search.in() filtro.You can implement security filters with search.in() filter. Il filtro si integra bene con i servizi di gestione delle identità come Azure Active Directory(AAD) per limitare i risultati della ricerca in base all'appartenenza al gruppo utente definita.The filter composes well with identity management services like Azure Active Directory(AAD) to trim search results based on defined user group membership.

Perché vengono trovate zero corrispondenze con termini che sono sicuramente validi?Why are there zero matches on terms I know to be valid?

Non tutti sanno che ogni tipo di query supporta comportamenti di ricerca e livelli di analisi linguistiche diversi.The most common case is not knowing that each query type supports different search behaviors and levels of linguistic analyses. La ricerca full-text, che è il carico di lavoro predominante, include una fase di analisi del linguaggio che suddivide i termini nei moduli radice.Full text search, which is the predominant workload, includes a language analysis phase that breaks down terms to root forms. Questo aspetto di analisi delle query esegue il cast di una rete più ampia alla ricerca di corrispondenze possibili, perché il termine in formato token corrisponde a un maggior numero di varianti.This aspect of query parsing casts a broader net over possible matches, because the tokenized term matches a greater number of variants.

Le query con caratteri jolly, fuzzy e regex, tuttavia, non vengono analizzate come query di un termine o una frase normale e possono causare un richiamo ridotto se la query non corrisponde alla forma della parola analizzata nell'indice di ricerca.Wildcard, fuzzy and regex queries, however, aren't analyzed like regular term or phrase queries and can lead to poor recall if the query does not match the analyzed form of the word in the search index. Per altre informazioni sull'analisi e l'analisi delle query, vedere architettura di query.For more information on query parsing and analysis, see query architecture.

Le ricerche con caratteri jolly sono lente.My wildcard searches are slow.

La maggior parte delle query di ricerca con caratteri jolly, ad esempio prefisso, fuzzy e regex, viene riscritta internamente con termini corrispondenti nell'indice di ricerca.Most wildcard search queries, like prefix, fuzzy and regex, are rewritten internally with matching terms in the search index. Questa elaborazione aggiuntiva di analisi dell'indice di ricerca aumenta la latenza.This extra processing of scanning the search index adds to latency. Inoltre, le query di ricerca ampie che, a* ad esempio, dovranno probabilmente essere riscritte con numerosi termini, possono essere molto lente.Further, broad search queries, like a* for example, that are likely to be rewritten with many terms can be very slow. Per ricerche con caratteri jolly efficienti, valutare la definizione di un analizzatore personalizzato.For performant wildcard searches, consider defining a custom analyzer.

Perché la ricerca classifica un punteggio costante o uguale a 1.0 per ogni occorrenza?Why is the search rank a constant or equal score of 1.0 for every hit?

Per impostazione predefinita, ai risultati della ricerca vengono assegnati dei punteggi in base alle proprietà statistiche dei termini corrispondenti e i risultati vengono ordinati dal punteggio più alto a quello più basso nel set dei risultati.By default, search results are scored based on the statistical properties of matching terms, and ordered high to low in the result set. Alcuni tipi di query (con carattere jolly, prefisso, regex) tuttavia contribuiscono sempre con un punteggio costante al punteggio complessivo del documento.However, some query types (wildcard, prefix, regex) always contribute a constant score to the overall document score. Questo comportamento dipende dalla progettazione.This behavior is by design. Azure ricerca cognitiva impone un punteggio costante per consentire l'inclusione di corrispondenze nell'espansione di query, senza influire sul rango.Azure Cognitive Search imposes a constant score to allow matches found through query expansion to be included in the results, without affecting the ranking.

Si supponga, ad esempio, che un input di "Tour *" in una ricerca con caratteri jolly produca corrispondenze in "Tours", "Tourettes" e "Tormalina".For example, suppose an input of "tour*" in a wildcard search produces matches on "tours", "tourettes", and "tourmaline". Data la natura di questi risultati, non è possibile dedurre ragionevolmente quali termini risultino più utili rispetto ad altri.Given the nature of these results, there is no way to reasonably infer which terms are more valuable than others. Per questo motivo, verranno ignorate le frequenze di termini durante l'assegnazione dei punteggi dei risultati nelle query di tipo con caratteri jolly, prefisso e regex.For this reason, we ignore term frequencies when scoring results in queries of types wildcard, prefix, and regex. Ai risultati della ricerca basati su un input parziale viene assegnato un punteggio costante per evitare la distorsione verso risultati potenzialmente imprevisti.Search results based on a partial input are given a constant score to avoid bias towards potentially unexpected matches.

Operazioni di competenzeSkillset Operations

Sono disponibili suggerimenti o consigli per ridurre gli addebiti per i servizi cognitivi per l'inserimento?Are there any tips or tricks to reduce cognitive services charges on ingestion?

È comprensibile che non si voglia eseguire competenze predefinite o competenze personalizzate più di quanto sia assolutamente necessario, soprattutto se si tratta di milioni di documenti da elaborare.It is understandable that you don't want to execute built-in skills or custom skills more than is absolutely necessary, especially if you are dealing with millions of documents to process. Tenendo presente questo aspetto, abbiamo aggiunto funzionalità di "arricchimento incrementale" per l'esecuzione di competenze.With that in mind, we have added "incremental enrichment" capabilities to skillset execution. In pratica, è possibile fornire un percorso della cache, ovvero una stringa di connessione all'archivio BLOB, che verrà usato per archiviare l'output dei passaggi di arricchimento "intermedio".In essence, you can provide a cache location (a blob storage connection string) that will be used to store the output of "intermediate" enrichment steps. Questo consente alla pipeline di arricchimento di essere intelligenti e applicare solo le funzionalità di arricchimento necessarie quando si modifica il proprio competenze.That allows the enrichment pipeline to be smart and apply only enrichments that are necessary when you modify your skillset. Questo conserverà anche il tempo di indicizzazione in quanto la pipeline sarà più efficiente.This will naturally also save indexing time as the pipeline will be more efficient.

Altre informazioni sull' arricchimento incrementaleLearn more about incremental enrichment

Modelli di progettazioneDesign patterns

La maggior parte dei clienti sceglie campi dedicati da una raccolta quando si tratta di supportare impostazioni locali (lingue) differenti nello stesso indice.Most customers choose dedicated fields over a collection when it comes to supporting different locales (languages) in the same index. I campi specifici delle impostazioni locali consentono di assegnare un analizzatore appropriato,Locale-specific fields make it possible to assign an appropriate analyzer. ad esempio l'analizzatore francese di Microsoft a un campo contenente stringhe in francese.For example, assigning the Microsoft French Analyzer to a field containing French strings. Viene anche semplificata l'applicazione dei filtri.It also simplifies filtering. Se si sa che una query viene avviata in una pagina fr-fr, è possibile limitare i risultati della ricerca a questo campo.If you know a query is initiated on a fr-fr page, you could limit search results to this field. In alternativa, è possibile creare un profilo di punteggio per assegnare al campo più peso relativo.Or, create a scoring profile to give the field more relative weight. Azure ricerca cognitiva supporta più analizzatori del linguaggio 50 tra cui scegliere.Azure Cognitive Search supports over 50 language analyzers to choose from.

Passaggi successiviNext steps

La domanda riguarda una funzione o una funzionalità mancante?Is your question about a missing feature or functionality? Richiedere la funzionalità sul sito Web User Voice.Request the feature on the User Voice web site.

Vedere ancheSee also

StackOverflow: Azure ricerca cognitiva StackOverflow: Azure Cognitive Search
Funzionamento della ricerca full-text in Ricerca cognitiva di AzureHow full text search works in Azure Cognitive Search
Informazioni su Azure ricerca cognitivaWhat is Azure Cognitive Search?