Добавление анализатора языка в индекс Поиска AzureAdd language analyzers to an Azure Search index

Анализатор языка является отдельным типом анализатора текста, которая выполняет лексический анализ с использованием лингвистических правил целевого языка.A language analyzer is a specific type of text analyzer that performs lexical analysis using the linguistic rules of the target language. Каждое поле, поддерживающее поиск, обладает свойством анализатора.Every searchable field has an analyzer property. Если ваш индекс содержит переведенные строки, например отдельные поля для английского и китайского текста, вы можете указать анализаторы языка для каждого поля, что позволит получить доступ к богатым лингвистическим возможностям этих анализаторов.If your index contains 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.

Служба "Поиск Azure" поддерживает 35 анализаторов на базе технологии Lucene и 50 анализаторов на базе собственной технологии Майкрософт для обработки естественных языков, которая используется в приложениях Office и поисковой системе Bing.Azure Search supports 35 analyzers backed by Lucene, and 50 analyzers backed by proprietary Microsoft natural language processing technology used in Office and Bing.

Сравнение анализаторовComparing analyzers

Некоторые разработчики предпочитают более знакомое и простое решение Lucene с открытым исходным кодом.Some developers might prefer the more familiar, simple, open-source solution of Lucene. Анализаторы языка Lucene работают быстрее, однако анализаторы Майкрософт обладают расширенными функциями, например лемматизацией, разбором слов на составные части (на таких языках, как немецкий, датский, голландский, шведский, норвежский, эстонский, финский, венгерский, словацкий) и распознаванием сущностей (URL-адресов, адресов электронной почты, дат, чисел).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). Рекомендуем вам сравнить результаты работы анализаторов от Майкрософт и Lucene и выбрать оптимальный для себя вариант.If possible, you should run comparisons of both the Microsoft and Lucene analyzers to decide which one is a better fit.

В зависимости от языка индексирование на базе анализаторов Майкрософт занимает в среднем в два-три раза больше времени, чем с помощью эквивалентных анализаторов Lucene.Indexing with Microsoft analyzers is on average two to three times slower than their Lucene equivalents, depending on the language. Время выполнения поискового запроса не должно значительно отличаться от запросов средних размеров.Search performance should not be significantly affected for average size queries.

Анализаторы английского языкаEnglish analyzers

По умолчанию используется анализатор Lucene (цен. категория "Стандартный"), который хорошо работает с английским языком. Однако вполне вероятно, что лучше него работают анализаторы для английского языка от Lucene или Майкрософт.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.

  • Анализатор для английского языка Lucene расширяет возможности стандартного анализатора.Lucene's English analyzer extends the standard analyzer. Он удаляет из слов признаки принадлежности (символы 's в конце), выделяет корень слова с помощью алгоритма стеммера Портера и удаляет английские стоп-слова.It removes possessives (trailing 's) from words, applies stemming as per Porter Stemming algorithm, and removes English stop words.

  • Анализатор английского языка от Майкрософт вместо выделения корня слова выполняет лемматизацию.Microsoft's English analyzer performs lemmatization instead of stemming. Это означает, что он гораздо лучше обрабатывает флективные и неправильные формы слов, благодаря чему вы получаете более подходящие результаты поиска.This means it can handle inflected and irregular word forms much better what results in more relevant search results

Настройка анализаторовConfiguring analyzers

Языковые анализаторы используются как есть.Language analyzers are used as-is. Для каждого поля в определении индекса можно задать в свойстве анализатора имя, определяющее язык и лингвистический стек (Microsoft или 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). Этот же анализатор будет применяться при индексировании и поиске поля.The same analyzer will be applied when indexing and searching for that field. Например, в одном индексе могут существовать отдельные поля для описаний гостиницы на английском, французском и испанском языках.For example, you can have separate fields for English, French, and Spanish hotel descriptions that exist side by side in the same index. Кроме того, вместо анализатора вы можете использовать indexAnalyzer и searchAnalyzer для разных правил анализа во время индексации и времени запроса.Alternatively, instead of analyzer, you can use indexAnalyzer and searchAnalyzer to have different analysis rules at indexing time and query time.

Используйте параметр запроса searchFields, чтобы указать поля для других языков, в которых будет выполнен запрос.Use the searchFields query parameter to specify which language-specific field to search against in your queries. Вы можете ознакомиться с примерами запросов, в которых используется свойство анализатора, в разделе Поиск документов.You can review query examples that include the analyzer property in Search Documents.

Дополнительные сведения о свойствах индекса см. в статье Create Index (Azure Search Service REST API) (Создание индекса (REST API Службы поиска Azure)).For more information about index properties, see Create Index (Azure Search Service REST API). Дополнительные сведения об анализе в службе "Поиск Azure" см. в статье Анализаторы для обработки текста в службе "Поиск Azure".For more information about analysis in Azure Search, see Analyzers in Azure Search.

Список анализаторов языкаLanguage analyzer list

Ниже приведен список поддерживаемых языков и названия анализаторов Lucene и Майкрософт.Below is the list of supported languages together with Lucene and Microsoft analyzer names.

ЯзыкLanguage Название анализатора МайкрософтMicrosoft Analyzer Name Название анализатора LuceneLucene Analyzer Name
АрабскийArabic ar.microsoftar.microsoft ar.lucenear.lucene
АрмянскийArmenian hy.lucenehy.lucene
БенгальскийBangla bn.microsoftbn.microsoft
БаскскийBasque eu.luceneeu.lucene
БолгарскийBulgarian bg.microsoftbg.microsoft bg.lucenebg.lucene
КаталанскийCatalan ca.microsoftca.microsoft ca.luceneca.lucene
Китайский (упрощенное письмо)Chinese Simplified zh-Hans.microsoftzh-Hans.microsoft zh-Hans.lucenezh-Hans.lucene
Китайский (традиционное письмо)Chinese Traditional zh-Hant.microsoftzh-Hant.microsoft zh-Hant.lucenezh-Hant.lucene
ХорватскийCroatian hr.microsofthr.microsoft
ЧешскийCzech cs.microsoftcs.microsoft cs.lucenecs.lucene
ДатскийDanish da.microsoftda.microsoft da.luceneda.lucene
НидерландскийDutch nl.microsoftnl.microsoft nl.lucenenl.lucene
АнглийскийEnglish en.microsoften.microsoft en.luceneen.lucene
ЭстонскийEstonian et.microsoftet.microsoft
ФинскийFinnish fi.microsoftfi.microsoft fi.lucenefi.lucene
ФранцузскийFrench fr.microsoftfr.microsoft fr.lucenefr.lucene
ГалисийскийGalician gl.lucenegl.lucene
НемецкийGerman de.microsoftde.microsoft de.lucenede.lucene
ГреческийGreek el.microsoftel.microsoft el.luceneel.lucene
ГуджаратиGujarati gu.microsoftgu.microsoft
ИвритHebrew he.microsofthe.microsoft
ХиндиHindi hi.microsofthi.microsoft hi.lucenehi.lucene
ВенгерскийHungarian hu.microsofthu.microsoft hu.lucenehu.lucene
ИсландскийIcelandic is.microsoftis.microsoft
Индонезийский (бахаса)Indonesian (Bahasa) id.microsoftid.microsoft id.luceneid.lucene
ИрландскийIrish ga.lucenega.lucene
ИтальянскийItalian it.microsoftit.microsoft it.luceneit.lucene
ЯпонскийJapanese ja.microsoftja.microsoft ja.luceneja.lucene
КаннадаKannada KN.Microsoftkn.microsoft
КорейскийKorean ko.microsoftko.microsoft ko.luceneko.lucene
ЛатышскийLatvian lv.microsoftlv.microsoft lv.lucenelv.lucene
ЛитовскийLithuanian lt.microsoftlt.microsoft
МалаяламMalayalam ml.microsoftml.microsoft
Малайский (латиница)Malay (Latin) ms.microsoftms.microsoft
МаратхиMarathi mr.microsoftmr.microsoft
НорвежскийNorwegian nb.microsoftnb.microsoft no.luceneno.lucene
ПерсидскийPersian fa.lucenefa.lucene
ПольскийPolish pl.microsoftpl.microsoft pl.lucenepl.lucene
Португальский (Бразилия)Portuguese (Brazil) pt-Br.microsoftpt-Br.microsoft pt-Br.lucenept-Br.lucene
Португальский (Португалия)Portuguese (Portugal) pt-Pt.microsoftpt-Pt.microsoft pt-Pt.lucenept-Pt.lucene
ПанджабиPunjabi pa.microsoftpa.microsoft
РумынскийRomanian ro.microsoftro.microsoft ro.lucenero.lucene
РусскийRussian ru.microsoftru.microsoft ru.luceneru.lucene
Сербский (кириллица)Serbian (Cyrillic) sr-cyrillic.microsoftsr-cyrillic.microsoft
Сербский (латиница)Serbian (Latin) sr-latin.microsoftsr-latin.microsoft
СловацкийSlovak sk.microsoftsk.microsoft
СловенскийSlovenian sl.microsoftsl.microsoft
ИспанскийSpanish es.microsoftes.microsoft es.lucenees.lucene
ШведскийSwedish sv.microsoftsv.microsoft sv.lucenesv.lucene
ТамильскийTamil ta.microsoftta.microsoft
ТелугуTelugu te.microsoftte.microsoft
ТайскийThai th.microsoftth.microsoft th.luceneth.lucene
ТурецкийTurkish tr.microsofttr.microsoft tr.lucenetr.lucene
УкраинскийUkrainian uk.microsoftuk.microsoft
УрдуUrdu ur.microsoftur.microsoft
ВьетнамскийVietnamese vi.microsoftvi.microsoft

Все анализаторы, у которых в названии есть идентификатор Lucene, работают на базе анализаторов языка Apache Lucene.All analyzers with names annotated with Lucene are powered by Apache Lucene's language analyzers.

См. такжеSee also

Create Index (Azure Search Service REST API) (Создание индекса (REST API Службы поиска Azure))Create Index (Azure Search Service REST API)
AnalyzerName Class (Класс AnalyzerName)AnalyzerName Class
Video: module 7 of Azure Search MVA presentation (Видео. 7 модуль презентации MVA, посвященной службе "Поиск Azure").Video: module 7 of Azure Search MVA presentation.