Přidání analyzátorů jazyka do polí řetězců v indexu Azure Kognitivní hledáníAdd language analyzers to string fields in an Azure Cognitive Search index

Analyzátor jazyka je konkrétní typ analyzátoru textu , který provádí lexikální analýzu pomocí jazykových pravidel cílového jazyka.A language analyzer is a specific type of text analyzer that performs lexical analysis using the linguistic rules of the target language. Každé prohledávatelné pole má vlastnost Analyzer .Every searchable field has an analyzer property. Pokud se obsah skládá z přeložených řetězců, jako jsou například samostatná pole pro angličtinu a čínský text, můžete zadat jazykové analyzátory pro každé pole, abyste měli přístup k bohatě lingvistických funkcím těchto analyzátorů.If your content consists of translated strings, such as separate fields for English and Chinese text, you could specify language analyzers on each field to access the rich linguistic capabilities of those analyzers.

Kdy použít analyzátor jazykaWhen to use a language analyzer

Analyzátor jazyka byste měli vzít v úvahu, pokud povědomí o struktuře slov nebo vět přidá hodnotu k analýze textu.You should consider a language analyzer when awareness of word or sentence structure adds value to text parsing. Běžným příkladem je přidružení nepravidelných operací formulářů ("přenést" a "převedená") nebo podstatná jména v množném číslech ("myši" a "Mouse").A common example is the association of irregular verb forms ("bring" and "brought) or plural nouns ("mice" and "mouse"). Bez jazykového povědomí se tyto řetězce analyzují jenom na fyzických vlastnostech, které neumožňují zachycení připojení.Without linguistic awareness, these strings are parsed on physical characteristics alone, which fails to catch the connection. Vzhledem k tomu, že velké bloky textu mají větší pravděpodobně obsah, pole obsahující popisy, recenze nebo souhrny jsou vhodnými kandidáty pro analyzátor jazyka.Since large chunks of text are more likely to have this content, fields consisting of descriptions, reviews, or summaries are good candidates for a language analyzer.

Analyzátory jazyka byste měli zvážit také v případě, že obsah se skládá z jiných než západních řetězců jazyka.You should also consider language analyzers when content consists of non-Western language strings. I když je výchozím analyzátorem jazyk – nezávislá, koncept použití mezer a speciálních znaků (spojovníky a lomítka) na oddělení řetězců je více použitelný pro západní jazyky, než je západní.While the default analyzer is language-agnostic, the concept of using spaces and special characters (hyphens and slashes) to separate strings tends is more applicable to Western languages than non-Western ones.

Například v čínštině, japonštině, korejštině (CJK) a dalších asijských jazycích není mezera nutně oddělovačem slov.For example, in Chinese, Japanese, Korean (CJK), and other Asian languages, a space is not necessarily a word delimiter. Vezměte v úvahu následující japonský řetězec.Consider the following Japanese string. Vzhledem k tomu, že nemá žádné mezery, by nástroj Language-nezávislá Analyzer pravděpodobně analyzoval celý řetězec jako jeden token, když ve skutečnosti je řetězec ve skutečnosti fráze.Because it has no spaces, a language-agnostic analyzer would likely analyze the entire string as one token, when in fact the string is actually a phrase.

これは私たちの銀河系の中ではもっとも重く明るいクラスの球状星団です。
(This is the heaviest and brightest group of spherical stars in our galaxy.)

V příkladu výše by úspěšný dotaz musel obsahovat úplný token nebo částečný token pomocí zástupného znaku přípony, což vede k nepřirozenému a omezení možností vyhledávání.For the example above, a successful query would have to include the full token, or a partial token using a suffix wildcard, resulting in an unnatural and limiting search experience.

Lepším řešením je hledat jednotlivá slova: 明るい (světlé), 私たちの (náš), 銀河系 (Galaxy).A better experience is to search for individual words: 明るい (Bright), 私たちの (Our), 銀河系 (Galaxy). Použití jednoho z japonských analyzátorů, které jsou k dispozici v Kognitivní hledání, má pravděpodobně odemčení tohoto chování, protože tyto analyzátory jsou lépe vybavené při rozdělování bloku textu na smysluplná slova v cílovém jazyce.Using one of the Japanese analyzers available in Cognitive Search is more likely to unlock this behavior because those analyzers are better equipped at splitting the chunk of text into meaningful words in the target language.

Porovnání aplikací Lucene a Microsoft AnalyzerComparing Lucene and Microsoft Analyzers

Azure Kognitivní hledání podporuje analyzátory jazyka 35, které jsou zajištěné pomocí aplikace Lucene a analyzátory jazyka 50 pomocí technologie Microsoft pro zpracování přirozeného jazyka, používané v Office a Bingu.Azure Cognitive Search supports 35 language analyzers backed by Lucene, and 50 language analyzers backed by proprietary Microsoft natural language processing technology used in Office and Bing.

Někteří vývojáři můžou preferovat známé, jednoduché a open source řešení Lucene.Some developers might prefer the more familiar, simple, open-source solution of Lucene. Analyzátory jazyka Lucene jsou rychlejší, ale analyzátory Microsoftu mají pokročilé možnosti, jako je lemmatizátor nebo předzpracování, wordová odkódování (v jazycích, jako je němčina, dánština, holandština, švédština, norština, finština, práce, maďarština, slovenština) a rozpoznávání entit (adresy URL, e-maily, data, čísla).Lucene language analyzers are faster, but the Microsoft analyzers have advanced capabilities, such as lemmatization, word decompounding (in languages like German, Danish, Dutch, Swedish, Norwegian, Estonian, Finish, Hungarian, Slovak) and entity recognition (URLs, emails, dates, numbers). Pokud je to možné, měli byste při rozhodování o tom, který z nich nejlépe vyhovuje, spustit porovnání analyzátorů Microsoftu a Lucene.If possible, you should run comparisons of both the Microsoft and Lucene analyzers to decide which one is a better fit.

Indexování pomocí analyzátorů Microsoft Analyzer se v závislosti na jazyku dokončí na průměrně dvakrát až třikrát pomaleji než jejich ekvivalenty Lucene.Indexing with Microsoft analyzers is on average two to three times slower than their Lucene equivalents, depending on the language. Pro dotazy na průměrnou velikost by nemělo být významně ovlivněný výkon hledání.Search performance should not be significantly affected for average size queries.

Analyzátory angličtinyEnglish analyzers

Výchozím analyzátorem je standardní Lucene, který funguje dobře pro angličtinu, ale ne i pro angličtinu nebo analyzátor od Microsoftu pro angličtinu.The default analyzer is Standard Lucene, which works well for English, but perhaps not as well as Lucene's English analyzer or Microsoft's English analyzer.

  • Analyzátor angličtiny pro Lucene v angličtině rozšiřuje standardní analyzátor.Lucene's English analyzer extends the standard analyzer. Odebere possessives (koncovou) z slov, aplikuje odvozování na Porter lemmatizátor Algorithm a odebere anglická slova o stopách.It removes possessives (trailing 's) from words, applies stemming as per Porter Stemming algorithm, and removes English stop words.

  • Microsoft English Analyzer vykonává lemmatizátor nebo předzpracování místo odvozování.Microsoft's English analyzer performs lemmatization instead of stemming. To znamená, že může zpracovávat inflected a nepravidelně větší množství slov, což má za následek relevantnější výsledky hledání.This means it can handle inflected and irregular word forms much better which results in more relevant search results

Konfigurace analyzátorůConfiguring analyzers

Analyzátory jazyka se používají tak, jak jsou.Language analyzers are used as-is. Pro každé pole v definici indexu můžete nastavit vlastnost Analyzer na název analyzátoru, který určuje jazyk a jazykové sady (Microsoft nebo Lucene).For each field in the index definition, you can set the analyzer property to an analyzer name that specifies the language and linguistics stack (Microsoft or Lucene). Stejný analyzátor bude použit při indexování a hledání daného pole.The same analyzer will be applied when indexing and searching for that field. Můžete mít například samostatná pole pro anglická, francouzská a španělská označení hotelu, která existují vedle sebe ve stejném indexu.For example, you can have separate fields for English, French, and Spanish hotel descriptions that exist side by side in the same index.

Poznámka

Není možné použít jiný analyzátor jazyka při indexování, než je doba dotazu v poli.It is not possible to use a different language analyzer at indexing time than at query time for a field. Tato funkce je vyhrazena pro vlastní analyzátory.That capability is reserved for custom analyzers. Z tohoto důvodu, pokud se pokusíte nastavit vlastnosti searchAnalyzer nebo indexAnalyzer na název analyzátoru jazyka, REST API vrátí chybovou odpověď.For this reason, if you try to set the searchAnalyzer or indexAnalyzer properties to the name of a language analyzer, the REST API will return an error response. Místo toho je nutné použít vlastnost Analyzer .You must use the analyzer property instead.

Pomocí parametru dotazu searchFields určete, které pole pro konkrétní jazyk chcete v dotazech vyhledat.Use the searchFields query parameter to specify which language-specific field to search against in your queries. Můžete zkontrolovat příklady dotazů, které obsahují vlastnost Analyzer v dokumentu hledání.You can review query examples that include the analyzer property in Search Documents.

Další informace o vlastnostech indexu najdete v tématu Create index (Azure Kognitivní hledání REST API).For more information about index properties, see Create Index (Azure Cognitive Search REST API). Další informace o analýze v Azure Kognitivní hledání najdete v tématu analyzátory v azure kognitivní hledání.For more information about analysis in Azure Cognitive Search, see Analyzers in Azure Cognitive Search.

Seznam analyzátoru jazykaLanguage analyzer list

Níže je uvedený seznam podporovaných jazyků společně s názvy Lucene a Microsoft Analyzer.Below is the list of supported languages together with Lucene and Microsoft analyzer names.

JazykLanguage Název programu Microsoft AnalyzerMicrosoft Analyzer Name Název analyzátoru LuceneLucene Analyzer Name
ArabštinaArabic ar. Microsoftar.microsoft ar. Lucenear.lucene
ArménštinaArmenian HY. Lucenehy.lucene
BengálštinaBangla BN. Microsoftbn.microsoft
BaskičtinaBasque EU. Luceneeu.lucene
BulharštinaBulgarian BG. Microsoftbg.microsoft BG. Lucenebg.lucene
KatalánštinaCatalan CA. Microsoftca.microsoft CA. Luceneca.lucene
Čínština (zjednodušená)Chinese Simplified zh-Hans. Microsoftzh-Hans.microsoft zh-Hans. Lucenezh-Hans.lucene
Čínština (tradiční)Chinese Traditional zh-Hant. Microsoftzh-Hant.microsoft zh-Hant. Lucenezh-Hant.lucene
ChorvatštinaCroatian HR. Microsofthr.microsoft
ČeštinaCzech cs. Microsoftcs.microsoft cs. Lucenecs.lucene
DánštinaDanish da. Microsoftda.microsoft da. Luceneda.lucene
NizozemštinaDutch NL – Microsoftnl.microsoft NL – Lucenenl.lucene
AngličtinaEnglish EN. Microsoften.microsoft EN. Luceneen.lucene
EstonštinaEstonian et. Microsoftet.microsoft
FinštinaFinnish Fi. Microsoftfi.microsoft Fi. Lucenefi.lucene
FrancouzštinaFrench fr. Microsoftfr.microsoft fr. Lucenefr.lucene
GalicijštinaGalician HK. Lucenegl.lucene
NěmčinaGerman de. Microsoftde.microsoft de. Lucenede.lucene
ŘečtinaGreek El. Microsoftel.microsoft El. Luceneel.lucene
GudžarátštinaGujarati Gu. Microsoftgu.microsoft
HebrejštinaHebrew IT. Microsofthe.microsoft
HindštinaHindi Dobrý den. Microsofthi.microsoft Dobrý den. Lucenehi.lucene
MaďarštinaHungarian hu. Microsofthu.microsoft hu. Lucenehu.lucene
IslandštinaIcelandic je. Microsoftis.microsoft
Indonéština (Bahasa)Indonesian (Bahasa) ID. Microsoftid.microsoft ID. Luceneid.lucene
IrštinaIrish GA. Lucenega.lucene
ItalštinaItalian IT. Microsoftit.microsoft IT. Luceneit.lucene
JaponštinaJapanese Ja. Microsoftja.microsoft Ja. Luceneja.lucene
KannadštinaKannada KN. Microsoftkn.microsoft
KorejštinaKorean Ko. Microsoftko.microsoft Ko. Luceneko.lucene
LotyštinaLatvian Lotyšsko. Microsoftlv.microsoft Lotyšsko. Lucenelv.lucene
LitevštinaLithuanian lt. Microsoftlt.microsoft
MalajalámštinaMalayalam ml. Microsoftml.microsoft
Malajština (latinka)Malay (Latin) MS. Microsoftms.microsoft
MaráthštinaMarathi Mr. Microsoftmr.microsoft
NorštinaNorwegian NB. Microsoftnb.microsoft Ne. Luceneno.lucene
PerštinaPersian FA. Lucenefa.lucene
PolštinaPolish pl. Microsoftpl.microsoft pl. Lucenepl.lucene
Portugalština (Brazílie)Portuguese (Brazil) pt-br. Microsoftpt-Br.microsoft pt-br. Lucenept-Br.lucene
portugalština (Portugalsko)Portuguese (Portugal) pt-PT. Microsoftpt-Pt.microsoft pt-PT. Lucenept-Pt.lucene
PaňdžábštinaPunjabi PA. Microsoftpa.microsoft
RumunštinaRomanian ro. Microsoftro.microsoft ro. Lucenero.lucene
RuštinaRussian ru. Microsoftru.microsoft ru. Luceneru.lucene
Srbština (cyrilice)Serbian (Cyrillic) SR-cyrilice. Microsoftsr-cyrillic.microsoft
Srbština (latinka)Serbian (Latin) SR-Latin. Microsoftsr-latin.microsoft
SlovenštinaSlovak sk. Microsoftsk.microsoft
SlovinštinaSlovenian SL. Microsoftsl.microsoft
ŠpanělštinaSpanish ES. Microsoftes.microsoft ES. Lucenees.lucene
ŠvédštinaSwedish sv. Microsoftsv.microsoft sv. Lucenesv.lucene
TamilštinaTamil Ta. Microsoftta.microsoft
TelugštinaTelugu te. Microsoftte.microsoft
ThajštinaThai th. Microsoftth.microsoft th. Luceneth.lucene
TurečtinaTurkish TR. Microsofttr.microsoft TR. Lucenetr.lucene
UkrajinštinaUkrainian Spojené království. Microsoftuk.microsoft
UrdštinaUrdu vaše společnost. Microsoftur.microsoft
VietnamštinaVietnamese VI. Microsoftvi.microsoft

Všechny analyzátory s názvy popsanými pomocí Lucene jsou napájené z analyzátorů jazyka Apache Lucene.All analyzers with names annotated with Lucene are powered by Apache Lucene's language analyzers.

Viz takéSee also