Lingue supportate da Windows Search

In questo argomento viene descritto come Windows Search supporta più lingue.

Tokenizzazione, wordbreaker e risorse della lingua

Windows Search è indipendente dalla lingua, ma l'accuratezza della ricerca tra lingue può variare a causa del modo in cui i wordbreaker tokenzzano il testo. I wordbreaker implementano varie regole di tokenizzazione per le lingue e interrompono il testo in singoli token, o parole, per l'indicizzazione o la ricerca.

Sia la lingua del testo indicizzato che la stringa di query sono suddivise in token. Poiché le regole di tokenizzazione variano in base alla lingua, esistono wordbreaker separati per ogni lingua o famiglia di lingue. Se esiste una mancata corrispondenza tra il linguaggio di query e il linguaggio indicizzato, i risultati possono essere imprevedibili.

Windows Search viene fornito con un set ben definito di wordbreaker. I componenti classici wordbreaker e stemmer sono supportati in Windows Vista e versioni successive. Se non è possibile determinare la lingua di un documento, Windows Search tenta di rilevare la lingua per identificare il wordbreaker più appropriato. Windows Search tenta di rilevare la lingua chiamando la funzione GetSystemPreferredUILanguages per determinare la prima lingua MUI (Multiple User Interface), che in genere è la lingua dell'interfaccia utente di sistema, a meno che non siano installati language pack MUI. Se la chiamata ha esito positivo, viene usato il wordbreaker per il primo linguaggio MUI. Se la chiamata a GetSystemPreferredUILanguages ha esito negativo, Windows Search recupera le impostazioni locali di sistema chiamando la funzione GetSystemDefaultLCID e usa il wordbreaker associato a tali impostazioni locali.

Se non viene installato alcun wordbreaker per una lingua, Windows Search interrompe lo spazio vuoto usando il wordbreaker Neutral .

È possibile rimuovere una lingua tramite il Registro di sistema, come illustrato nell'esempio seguente.

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            ContentIndex
               Language
                  Dutch_Dutch
                     (Default)
                     Locale
                     NoiseFile
                     StemmerClass = CLSID
                     WBreakerClass = CLSID

Suggerimento

Se si apportano modifiche al Registro di sistema, riavviare Windows Search.

 

Quando Windows Search richiede un nuovo wordbreaker, l'identificatore di classe (CLSID) viene letto e viene memorizzato nella cache il wordbreaker di cui è stata creata un'istanza.

È possibile creare un wordbreaker personalizzato per un linguaggio implementando l'interfaccia IWordBreaker . Windows Search chiama quindi i metodi IWordBreaker quando compila indici di contenuto ed esegue query.

Le informazioni sulle impostazioni locali per il contenuto indicizzato vengono recuperate dall'origine del contenuto. Se l'implementatore di origine non conosce le impostazioni locali del contenuto indicizzato, deve impostare le impostazioni locali su LOCALE_NEUTRAL.

Ad esempio, se si implementa un gestore di filtri (un'implementazione dell'interfaccia IFilter ), il gestore di proprietà o il gestore del protocollo, è necessario impostare le impostazioni locali per il contenuto indicizzato su LOCALE_NEUTRAL a meno che non si disponga di informazioni sulle impostazioni locali specifiche e si sia certi della relativa accuratezza.

Suggerimento

Se una query sull'indice è basata sull'input dell'utente, le impostazioni locali devono corrispondere alla lingua in cui l'utente sta digitando. È possibile determinare queste impostazioni locali chiamando la funzione GetKeyboardLayout .

 

Lingue supportate da Wordbreakers

Windows Search include wordbreaker per supportare le lingue seguenti.

Chiave del Registro di sistema Lingua (sottolanguage) LCID
Arabic_SaudiArabia Arabo (neutro) 0x0001
Bengali_Default Bangla (neutrale) 0x0045
Bulgarian_Default Bulgaro (Bulgaria) 0x0402
Catalan_Default Catalano (Catalogna) 0x0403
Chinese_HongKong Cinese (Hong Kong - R.A.S., Repubblica popolare cinese) 0x0C04
Chinese_Simplified Cinese (semplificato) 0x0804
Chinese_Traditional Cinese (tradizionale) 0x0404
Croatian_Default Croato (Croazia) 0x041A
Czech_Default Ceco (Repubblica Ceca) 0x0405
Danish_Default Danese (Danimarca) 0x0406
Dutch_Dutch Olandese (Paesi Bassi) 0x0413
English_UK Inglese (Regno Unito) 0x0809
English_US Inglese (Stati Uniti) 0x0409
Finnish_Default Finlandese (Finlandia) 0x040B
French_French Francese (Francia) 0x040C
German_German Tedesco (Germania) 0x0407
Greek_Default Greco (Grecia) 0x0408
Gujarati_Default Gujarati (India) 0x0447
Hebrew_Default Ebraico (neutro) 0x000D
Hindi_Default Hindi (India) 0x0439
Hungarian_Default Ungherese (Ungheria) 0x040E
Icelandic_Default Islandese (Islanda) 0x040F
Indonesian_Default Indonesiano (Indonesia) 0x0421
Italian_Italian Italiano (Italia) 0x0410
Japanese_Default Giapponese (Giappone) 0x0411
Kannada_Default Kannada (India) 0x044B
Korean_Default Coreano (Corea) 0x0412
Latvian_Default Lettone (Lettonia) 0x0426
Lithuanian_Default Lituano (lituano) 0x0427
Malay_Malaysia Malese (Malaysia) 0x043E
Malayalam_Default Malayalam (neutrale) 0x004C
Marathi_Default Marathi (India) 0x044E
Norwegian_Bokmal Norvegese (Bokmål, Norvegia) 0x0414
Polish_Default Polacco (Polonia) 0x0415
Portuguese_Portugal Portoghese (Portogallo) 0x0816
Portuguese_Brazil Portoghese (Brasile) 0x0416
Punjabi_Default Punjabi (India) 0x0446
Romanian_Default Romeno (Romania) 0x0418
Russian_Default Russo (neutrale) 0x0019
Serbian_Cyrillic Serbo (Serbia e Montenegro, Ex, Cirillico) 0x0C1A
Serbo (alfabeto latino) Serbo (Serbia e Montenegro, precedente, latino) 0x081A
Slovak_Default Slovacco (Slovacchia) 0x041B
Slovenian_Default Sloveno (Slovenia) 0x0424
Spanish_Modern Spagnolo (Spagna, Ordinamento moderno) 0x0C0A
Swedish_Default Svedese (Svezia) 0x041D
Tamil_Default Tamil (India) 0x0449
Telugu_Default Telugu (India) 0x044A
Thai_Default Thai (Thailandia) 0x041E
Turkish_Default Turco (Türkiye) 0x041F
Ukrainian_Default Ucraino (Ucraina) 0x0422
Urdu_Default Urdu (Pakistan) 0x0420
Vietnamese_Default Vietnamita (Vietnam) 0x042A

 

Nota

Gli LCID per alcune lingue della tabella vengono generati usando l'identificatore della lingua, l'identificatore di sottolanguage e l'identificatore di ordinamento.

 

Per altre informazioni sulle lingue e sugli identificatori associati, vedere Costanti e stringhe dell'identificatore del linguaggio.

Nota

Non vi è alcuna garanzia che tutte queste chiavi del Registro di sistema linguistico saranno presenti in qualsiasi computer specificato. Il wordbreaker per qualsiasi lingua specifica può o non essere installato nel computer a seconda delle impostazioni utente.

 

A partire da Windows 8.1, il modo preferito per usare wordbreakers è tramite la classe Api WinRT WordsSegmenter.

Risorse aggiuntive

Panoramica di Windows Search

Windows Search come piattaforma di sviluppo

Uso di codice gestito con i dati della shell e Windows Search