Creare un indice per i documenti in più lingue in Ricerca di AzureCreate an index for documents in multiple languages in Azure Search

Consentire l'espressione della potenza degli analizzatori delle lingue è semplice come l'impostazione di una proprietà in un campo di ricerca nella definizione dell'indice.Unleashing the power of language analyzers is as easy as setting one property on a searchable field in the index definition. Questo passaggio può ora essere eseguito nel portale.Now you can do this step in the portal.

Di seguito sono riportate schermate dei pannelli del portale di Azure relativi a Ricerca di Azure che consentono agli utenti di definire uno schema di indice.Below are screenshots of the Azure Portal blades for Azure Search that allow users to define an index schema. Da questi pannelli, gli utenti possono creare tutti i campi e impostare la proprietà analyzer per ognuno di essi.From this blade, users can create all of the fields and set the analyzer property for each of them.

Importante

È possibile impostare solo un analizzatore della lingua durante la definizione del campo, come quando si crea un nuovo indice da zero o si aggiunge un nuovo campo a un indice esistente. Assicurarsi di specificare completamente tutti gli attributi, incluso l'analizzatore, durante la creazione del campo. Non sarà possibile modificare gli attributi o cambiare il tipo di analizzatore dopo avere salvato le modifiche.

Definire una nuova definizione di campoDefine a new field definition

  1. Accedere al portale di Azure e aprire il pannello del servizio di ricerca.Sign in to the Azure portal and open the service blade of your search service.
  2. Fare clic su Aggiungi un indice nella barra di comando del dashboard del servizio per avviare un nuovo indice oppure aprire un indice esistente per impostare un analizzatore nei nuovi campi aggiunti a un indice esistente.Click Add index in the command bar at the top of the service dashboard to start a new index, or open an existing index to set an analyzer on new fields you're adding to an existing index.
  3. Viene visualizzato il pannello Campi, con opzioni per la definizione dello schema dell'indice, inclusa la scheda Analizzatore usata per la scelta di un analizzatore della lingua.The Fields blade appears, giving you options for defining the schema of the index, including the Analyzer tab used for choosing a language analyzer.
  4. In Campi avviare una definizione di campo fornendo un nome, scegliendo il tipo di dati e impostando gli attributi per contrassegnare il campo come disponibile per la ricerca full-text, recuperabile nei risultati della ricerca, utilizzabile nelle strutture di navigazione facet, ordinabile e così via.In Fields, start a field definition by providing a name, choosing the data type, and setting attributes to mark the field as full text searchable, retrievable in search results, usable in facet navigation structures, sortable, and so forth.
  5. Prima di passare al campo successivo, aprire la scheda Analizzatore .Before moving on to the next field, open the Analyzer tab.

Per selezionare un analizzatore, fare clic sulla scheda Analizzatore nel pannello Campi To select an analyzer, click the Analyzer tab on the Fields blade

Scegliere un analizzatoreChoose an analyzer

  1. Scorrere per trovare il campo che si sta definendo.Scroll to find the field you are defining.
  2. Se il campo non è stato contrassegnato come ricercabile, fare clic sulla casella di controllo per contrassegnarlo come Ricercabile.If you haven't marked the field as searchable, click the checkbox now to mark it as Searchable.
  3. Fare clic sull'area dell'analizzatore per visualizzare l'elenco degli analizzatori disponibili.Click the Analyzer area to display the list of available analyzers.
  4. Scegliere l'analizzatore che si desidera usare.Choose the analyzer you want to use.

Selezionare uno degli analizzatori supportati per ogni campo Select one of the supported analyzers for each field

Per impostazione predefinita, tutti i campi di ricerca usano l' analizzatore Standard Lucene che è indipendente dalla lingua.By default, all searchable fields use the Standard Lucene analyzer which is language agnostic. Per visualizzare l'elenco completo degli analizzatori supportati, vedere il post di blog relativo alle lingue supportate in Ricerca di Azure.To view the full list of supported analyzers, see Language Support in Azure Search.

Dopo aver selezionato l'analizzatore della lingua per un campo, verrà usato per ogni richiesta di ricerca e indicizzazione relativa a quel campo.Once the language analyzer is selected for a field, it will be used with each indexing and search request for that field. Quando viene eseguita una query su più campi usando analizzatori diversi, la query verrà elaborata in modo indipendente dagli analizzatori specifici di ciascun campo.When a query is issued against multiple fields using different analyzers, the query will be processed independently by the right analyzers for each field.

Molte applicazioni Web e per dispositivi mobili vengono sfruttate dagli utenti in tutto il mondo in diverse lingue.Many web and mobile applications serve users around the globe using different languages. È possibile definire un indice per uno scenario simile al seguente mediante la creazione di un campo per ogni lingua supportata.It’s possible to define an index for a scenario like this by creating a field for each language supported.

Definizione di indice con un campo di descrizione per ogni lingua supportata Index definition with a description field for each language supported

Se la lingua dell'agente che esegue una query è nota, è possibile definire per una richiesta di ricerca un ambito relativo a un campo specifico usando il parametro di query searchFields .If the language of the agent issuing a query is known, a search request can be scoped to a specific field using the searchFields query parameter. La query seguente verrà generata solo per la descrizione in polacco:The following query will be issued only against the description in Polish:

https://[service name].search.windows.net/indexes/[index name]/docs?search=darmowy&searchFields=description_pl&api-version=2016-09-01

È possibile eseguire query sull'indice dal portale, usando Esplora ricerche per incollare una query simile a quello illustrata in precedenza.You can query your index from the portal, using Search explorer to paste in a query similar to the one shown above. Esplora ricerche è disponibile nella barra dei comandi nel pannello del servizio.Search explorer is available from the command bar in the service blade. Per informazioni dettagliate, vedere Eseguire query su un indice di Ricerca di Azure .See Query your Azure Search index in the portal for details.

È possibile che la lingua dell'agente che esegue una query non sia nota, in tal caso la query può essere inviata a tutti i campi contemporaneamente.Sometimes the language of the agent issuing a query is not known, in which case the query can be issued against all fields simultaneously. Se necessario, è possibile definire delle preferenze per i risultati in una determinata lingua usando i profili di punteggio.If needed, preference for results in a certain language can be defined using scoring profiles. Nell'esempio seguente, alle corrispondenze trovate nella descrizione in inglese viene assegnato un punteggio più elevato rispetto alle corrispondenze in polacco e francese:In the example below, matches found in the description in English will be scored higher relative to matches in Polish and French:

"scoringProfiles": [
  {
    "name": "englishFirst",
    "text": {
      "weights": { "description_en": 2 }
    }
  }
]

https://[service name].search.windows.net/indexes/[index name]/docs?search=Microsoft&scoringProfile=englishFirst&api-version=2016-09-01

Per gli sviluppatori .NET, si noti che è possibile configurare analizzatori delle lingue mediante l' SDK .NET di Ricerca di Azure.If you're a .NET developer, note that you can configure language analyzers using the Azure Search .NET SDK. La versione più recente supporta anche gli analizzatori delle lingue di Microsoft.The latest release includes support for the Microsoft language analyzers as well.