Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательский анализатор — это компонент лексического анализа по содержимому обычного текста. Это определяемое пользователем сочетание одного токенизатора, одного или нескольких фильтров маркеров и одного или нескольких фильтров символов. Настраиваемый анализатор указывается в индексе поиска, а затем вызывается по имени в определениях полей, которые требуют пользовательского анализа. Индивидуальный анализатор вызывается для каждого поля. Атрибуты в поле определяют, используется ли он для индексирования, запросов или обоих.
В пользовательском анализаторе фильтры символов подготавливают входной текст перед обработкой маркеризатором (например, удаление разметки). Затем токенизатор разбивает текст на токены. Наконец, фильтры токенов изменяют токены, создаваемые токенизатором. См. Понятия и примеры в статьях «Анализаторы в службе Azure AI Search» и «Руководство: создание пользовательского анализатора для номеров телефонов».
Зачем использовать пользовательский анализатор?
Следует рассмотреть пользовательский анализатор в классических рабочих процессах поиска, которые не включают большие языковые модели и их способность обрабатывать аномалии содержимого.
В поиске классов пользовательский анализатор позволяет управлять процессом преобразования обычного текста в индексируемые и поисковые маркеры, позволяя выбирать типы анализа или фильтрации для вызова, а также порядок их возникновения.
Создайте и назначьте пользовательский анализатор, если ни стандартный Lucene, ни встроенный, ни языковой анализаторы не удовлетворяют вашим потребностям. Вы также можете создать пользовательский анализатор, если вы хотите использовать встроенный анализатор с настраиваемыми параметрами. Например, если вы хотите изменить maxTokenLength стандартную Lucene, вы создадите пользовательский анализатор с заданным пользователем именем, чтобы задать этот параметр.
Сценарии, в которых пользовательские анализаторы могут быть полезны:
Использование фильтров символов для удаления разметки HTML перед токенизацией текстовых данных или замены определенных знаков и символов.
Фонетический поиск. Добавьте фонетический фильтр, чтобы искать слова на основе их звучания, а не написания.
Отключение лексического анализа. Используйте анализатор ключевых слов для создания доступных для поиска полей, которые не анализируются.
Быстрый поиск по префиксам или суффиксам. Добавьте фильтр токенов Edge N-gram для индексирования префиксов слов и обеспечения быстрого сопоставления префиксов. Объедините его с обратным фильтром маркеров, чтобы выполнить сопоставление суффиксов.
Пользовательская токенизация. Например, с помощью создателя маркеров пробелов можно разделить предложения на маркеры, используя пробел как разделитель.
Приведение к ASCII. Добавьте стандартный фильтр ASCII для нормализации диакритических знаков, таких как ö или ê, в поисковых запросах.
Примечание.
Пользовательские анализаторы не отображаются в портале Azure. Единственным способом добавления пользовательского анализатора является код, который создает схему индекса.
Создать пользовательский анализатор
Чтобы создать пользовательский анализатор, укажите его в разделе analyzers индекса на этапе проектирования, а затем ссылайтесь на него в полях для поиска Edm.String, используя либо свойство analyzer, либо пару indexAnalyzer и searchAnalyzer.
Определение анализатора включает в себя название, тип, один или несколько фильтров символов, не более одного токенизатора, а также один или несколько фильтров токенов для обработки после токенизации. Перед токенизацией применяются фильтры символов. Фильтры маркеров и фильтры символов применяются слева направо.
Имена в пользовательском анализаторе должны быть уникальными и не могут совпадать со встроенными анализаторами, токенизаторами, фильтрами маркеров или фильтрами символов. Имена состоят из букв, цифр, пробелов, дефисов или символов подчеркивания. Имена должны начинаться и заканчиваться символами обычного текста. Имена должны содержать не более 128 символов.
Тип должен быть #Microsoft.Azure.Search.CustomAnalyzer.
charFiltersможет быть одним или несколькими фильтрами из фильтров символов, обработанных до токенизации, в указанном порядке. Некоторые фильтры символов имеют параметры, которые можно задать вcharFiltersразделе. Фильтры символов необязательны.tokenizerпредставляет собой ровно один токенизатор. Необходимо указывать значение. Если вам нужно больше токенизаторов, создайте несколько пользовательских анализаторов и в схеме индекса назначьте каждому полю по одному анализатору.tokenFiltersможет быть одним или несколькими фильтрами из фильтров маркеров, обработанных после токенизации, в указанном порядке. Для фильтров токенов, имеющих параметры, добавьтеtokenFilterраздел для указания конфигурации. Фильтры токенов являются необязательными.
Длина создаваемых анализаторами маркеров не должна превышать 300 символов, иначе индексирование завершится ошибкой. Чтобы обрезать длинные маркеры или исключить их, используйте параметры TruncateTokenFilter или LengthTokenFilter. Для справки см. раздел Фильтры маркеров.
"analyzers":(optional)[
{
"name":"name of analyzer",
"@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
"charFilters":[
"char_filter_name_1",
"char_filter_name_2"
],
"tokenizer":"tokenizer_name",
"tokenFilters":[
"token_filter_name_1",
"token_filter_name_2"
]
},
{
"name":"name of analyzer",
"@odata.type":"#analyzer_type",
"option1":value1,
"option2":value2,
...
}
],
"charFilters":(optional)[
{
"name":"char_filter_name",
"@odata.type":"#char_filter_type",
"option1":value1,
"option2":value2,
...
}
],
"tokenizers":(optional)[
{
"name":"tokenizer_name",
"@odata.type":"#tokenizer_type",
"option1":value1,
"option2":value2,
...
}
],
"tokenFilters":(optional)[
{
"name":"token_filter_name",
"@odata.type":"#token_filter_type",
"option1":value1,
"option2":value2,
...
}
]
В определении индекса этот раздел можно разместить в любом месте текста запроса на создание индекса, но он обычно находится в конце.
{
"name": "name_of_index",
"fields": [ ],
"suggesters": [ ],
"scoringProfiles": [ ],
"defaultScoringProfile": (optional) "...",
"corsOptions": (optional) { },
"analyzers":(optional)[ ],
"charFilters":(optional)[ ],
"tokenizers":(optional)[ ],
"tokenFilters":(optional)[ ]
}
Определение анализатора является частью большого индекса. Определения фильтров символов, токенизаторов и фильтров токенов добавляются в индекс только при настройке пользовательских параметров. Чтобы использовать существующий фильтр или токенизатор в исходном виде, укажите его по имени в конфигурации анализатора. Дополнительные сведения см. в разделе Создание индекса (REST). Дополнительные примеры см. в статье "Добавление анализаторов" в поиске ИИ Azure.
Проверка пользовательских анализаторов
Сведения о том, как анализатор разбивает текст на маркеры, см. в статье Анализатор теста (REST).
Запросить
POST https://[search service name].search.windows.net/indexes/[index name]/analyze?api-version=[api-version]
Content-Type: application/json
api-key: [admin key]
{
"analyzer":"my_analyzer",
"text": "Vis-à-vis means Opposite"
}
Ответ
{
"tokens": [
{
"token": "vis_a_vis",
"startOffset": 0,
"endOffset": 9,
"position": 0
},
{
"token": "vis_à_vis",
"startOffset": 0,
"endOffset": 9,
"position": 0
},
{
"token": "means",
"startOffset": 10,
"endOffset": 15,
"position": 1
},
{
"token": "opposite",
"startOffset": 16,
"endOffset": 24,
"position": 2
}
]
}
Обновление пользовательских анализаторов
После определения анализатора, токенизатора, фильтра маркеров или фильтра символов его нельзя изменить. Добавить новые определения в существующий индекс можно только в том случае, если в запросе на обновление индекса для флага allowIndexDowntime установлено значение true.
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Эта операция переведет индекс в автономный режим на несколько секунд, что приведет к сбоям при выполнении индексирования и запросов. После обновления индекса его производительность и доступность для записи может быть снижена на несколько минут или дольше, если индекс очень большой. Эти последствия временны и проходят сами по себе.
Встроенные анализаторы
Если вы хотите использовать встроенный анализатор с пользовательскими параметрами, создание пользовательского анализатора — это способ, с помощью которого можно указать эти параметры. В отличие от этого, чтобы использовать встроенный анализатор «как есть», достаточно просто сослаться на него по имени в определении поля.
| Название анализатора | analyzer_type1 | Описание и параметры |
|---|---|---|
| ключевое слово | (тип применяется только при наличии опций) | Обрабатывает все содержимое поля как один маркер. Это полезно для данных некоторых типов, таких как почтовые индексы, идентификаторы и названия продуктов. |
| рисунок | АнализаторШаблонов | Гибко разделяет текст на термины с помощью шаблона регулярного выражения. Параметры lowercase (тип: логическое значение) — определяет, должны ли термины быть в нижнем регистре. Значение по умолчанию: true. pattern (тип: строка) — шаблон регулярного выражения для сопоставления разделителей токенов. Значение по умолчанию — \W+, которое соответствует символам, не образующим слова. flags (тип: строка) — флаги регулярных выражений. Значением по умолчанию является пустая строка. Допустимые значения: CANON_EQ, CASE_INSENSITIVE, КОММЕНТАРИИ, DOTALL, ЛИТЕРАЛ, MULTILINE, UNICODE_CASE, UNIX_LINES stopwords (тип: массив строк) — список стоп-слов. Значение по умолчанию — пустой список. |
| Простые | (тип применяется только при наличии опций) | Разбивает текст по небуквенным знакам и преобразует его в нижний регистр. |
|
стандарт (также называется standard.lucene) |
СтандартныйАнализатор | Стандартный анализатор Lucene, состоящий из стандартного токенизатора, фильтра нижнего регистра и фильтра стоп-слов. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера. Значение по умолчанию — 255. Токены, размер которых превышает максимальную длину, разделяются. Максимальная допустимая длина маркера — 300 знаков. stopwords (тип: массив строк) — список стоп-слов. Значение по умолчанию — пустой список. |
| standardasciifolding.lucene | (тип применяется только при наличии вариантов) | Стандартный анализатор с фильтром приведения к ASCII. |
| остановить | СтопАнализатор | Разбивает текст по небуквенным символам, применяет фильтры токенов для преобразования в нижний регистр и удаления стоп-слов. Параметры stopwords (тип: массив строк) — список стоп-слов. Значение по умолчанию представляет собой стандартный список для английского языка. |
| Пробелы | (тип применяется только при наличии вариантов) | Анализатор, использующий токенизатор пробелов. Маркеры длиной более 255 знаков разделяются. |
1 Типы анализаторов всегда префиксируются в коде таким #Microsoft.Azure.Search образом, что PatternAnalyzer фактически указывается как #Microsoft.Azure.Search.PatternAnalyzer. Мы удалили префикс для краткости, но он требуется в коде.
Обратите внимание, что параметр analyzer_type предоставляется только для анализаторов, которые можно настроить. Если нет опций, как это бывает с анализатором ключевых слов, нет связанного типа #Microsoft.Azure.Search.
Фильтры символов
Фильтры символов добавляют обработку перед тем как строка достигает токенизатора.
Поиск ИИ Azure поддерживает фильтры символов в следующем списке. Дополнительные сведения о каждом из них можно найти в справочнике по API Lucene.
| Имя фильтра знаков | char_filter_type1 | Описание и параметры |
|---|---|---|
| html_strip | (тип применяется только при наличии вариантов) | Фильтр знаков, который пытается удалить HTML-конструкции. |
| сопоставление | СопоставлениеCharFilter | Фильтр знаков, который применяет сопоставления, определенные в параметре сопоставлений. Сопоставление является жадным (самое длинное сопоставление шаблона в заданной точке выигрывает). Замена может быть пустой строкой. Параметры сопоставления (тип: массив строк) — список сопоставлений следующего формата: a=>b (все вхождения символа a заменяются символом b). Обязательный. |
| замена_шаблона | PatternReplaceCharFilter | Фильтр знаков, который заменяет знаки во входной строке. Он использует регулярное выражение, чтобы определить последовательности знаков, которые нужно сохранить, и шаблон замены, чтобы определить знаки для замены. Например, входной текст = , шаблон= aa bb aa bb(aa)\\\s+(bb) замена=$1#$2, результат = aa#bb aa#bb. Параметры pattern (тип: строка) — обязательный параметр. замена (тип: строка) — обязательный параметр. |
1 Типы фильтров char всегда префиксируются в коде таким #Microsoft.Azure.Search образом, что MappingCharFilter фактически указывается как #Microsoft.Azure.Search.MappingCharFilter. Мы удалили префикс, чтобы уменьшить ширину таблицы, но не забудьте включить его в код. Обратите внимание, что параметр char_filter_type предоставляется только для фильтров, которые можно настроить. Если нет параметров, как и в случае с html_strip, нет связанного типа #Microsoft.Azure.Search.
Токенизаторы
Токенизатор делит непрерывный текст на последовательность маркеров, например разбиение предложения на слова или слово в корневые формы.
Поиск Azure AI поддерживает маркеризаторы в следующем списке. Дополнительные сведения о каждом из них можно найти в справочнике по API Lucene.
| Имя токенизатора | tokenizer_type1 | Описание и параметры |
|---|---|---|
| классическая | ClassicTokenizer | Токенизатор, основанный на грамматике, который подходит для обработки документов на большинстве европейских языков. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера. По умолчанию: 255, максимальная: 300. Токены, размер которых превышает максимальную длину, разделяются. |
| edgeNGram | EdgeNGramTokenizer | Токенизирует данные от интерфейса в n-граммы заданных размеров. Параметры minGram (тип: целое число) — по умолчанию: 1, максимум: 300. minGram (тип: целое число) — по умолчанию: 2, максимум: 300. Значение должно превышать minGram. tokenChars (тип: массив строк) — классы знаков, которые нужно оставить в токенах. Допустимые значения: letter, digit, whitespace, punctuation, symbol. По умолчанию используется пустой массив — сохраняются все символы. |
| keyword_v2 | KeywordTokenizerV2 | Выводит все входные данные в виде одного маркера. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера. По умолчанию: 256, максимальная: 300. Токены, размер которых превышает максимальную длину, разделяются. |
| письмо | (тип применяется только при наличии вариантов) | Разбивает текст по небуквенным символам. Маркеры длиной более 255 знаков разделяются. |
| нижний регистр | (тип применяется только при наличии вариантов) | Разбивает текст по небуквенным знакам и преобразует его в нижний регистр. Маркеры длиной более 255 знаков разделяются. |
| microsoft_language_tokenizer | MicrosoftLanguageTokenizer | Разбивает текст на основе правил определенного языка. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера, по умолчанию: 255, максимальная: 300. Токены, размер которых превышает максимальную длину, разделяются. Маркеры длиной более 300 знаков сначала разбиваются на маркеры длиной 300 знаков, а затем каждый из них разбивается на основе параметра maxTokenLength. isSearchTokenizer (тип: логическое значение) — установите значение true, если используется как токенизатор для поиска, или false, если используется в качестве токенизатора для индексации. язык (тип: строка) — язык для использования, по умолчанию english. Допустимые значения: bangla, bulgarian, catalan, chineseSimplified, chineseTraditional, croatian, czech, danish, dutch, english, french, german, greek, gujarati, hindi, icelandic, indonesian, italian, japanese, kannada, korean, malay, malayalam, marathi, norwegianBokmaal, polish, portuguese, portugueseBrazilian, punjabi, romanian, russian, serbianCyrillic, serbianLatin, slovenian, spanish, swedish, tamil, telugu, thai, ukrainian, urdu, vietnamese |
| microsoft_language_stemming_tokenizer | MicrosoftLanguageStemmingTokenizer | Разделяет текст с помощью правил, относящихся к языку, и сокращает количество слов к базовым формам. Этот токенизатор выполняет лемматизацию. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера, по умолчанию: 255, максимальная: 300. Токены, размер которых превышает максимальную длину, разделяются. Маркеры длиной более 300 знаков сначала разбиваются на маркеры длиной 300 знаков, а затем каждый из них разбивается на основе параметра maxTokenLength. isSearchTokenizer (тип: логическое значение) — задайте значение true, если используется в качестве токенизатора поиска, или false, если используется в качестве токенизатора индексации. язык (тип: строка) — язык для использования, по умолчанию english. Допустимые значения: arabic, bangla, bulgarian, catalan, croatian, czech, danish, dutch, english, estonian, finnish, french, german, greek, gujarati, hebrew, hindi, hungarian, icelandic, indonesian, italian, kannada, latvian, lithuanian, malay, malayalam, marathi, norwegianBokmaal, polish, portuguese, portugueseBrazilian, punjabi, romanian, russian, serbianCyrillic, serbianLatin, slovak, slovenian, spanish, swedish, tamil, telugu, turkish, ukrainian, urdu |
| nGram | NGramTokenizer (токенизатор n-грамм) | Разбивает входные данные на n-граммы заданного размера. Параметры minGram (тип: целое число) — по умолчанию: 1, максимум: 300. minGram (тип: целое число) — по умолчанию: 2, максимум: 300. Значение должно превышать minGram. tokenChars (тип: массив строк) — классы знаков, которые нужно оставить в токенах. Допустимые значения: letter, , digitwhitespace, punctuationsymbol. По умолчанию используется пустой массив — сохраняются все символы. |
| path_hierarchy_v2 | PathHierarchyTokenizerV2 | Токенизатор для путьоподобных иерархий.
Параметры delimiter (тип: строка). Значение по умолчанию: '/. replacement (тип: строка) — если установлено, заменяет разделительный символ. Значение по умолчанию соответствует значению параметра delimiter. maxTokenLength (тип: целое число) — максимальная длина маркера. По умолчанию: 300, максимум: 300. Пути длиннее, чем значение maxTokenLength, игнорируются. reverse (тип: bool) — если true, генерирует токен в обратном порядке. По умолчанию: false. skip (тип: bool) — маркеры, которые следует пропустить сначала. По умолчанию установлено значение 0. |
| рисунок | PatternTokenizer | Этот токенизатор использует сопоставление шаблонов регулярных выражений для создания различных токенов. Параметры pattern (тип: строка) — шаблон регулярного выражения для соответствия разделителям токенов. Значение по умолчанию — \W+, которое соответствует символам, не образующим слова. flags (тип: строка) — флаги регулярных выражений. Значением по умолчанию является пустая строка. Допустимые значения: CANON_EQ, CASE_INSENSITIVE, КОММЕНТАРИИ, DOTALL, ЛИТЕРАЛ, MULTILINE, UNICODE_CASE, UNIX_LINES group (тип: int) — какая группа преобразуется в токены. Значение по умолчанию: "-1" (разделение). |
| standard_v2 | StandardTokenizerV2 | Разбивает текст по правилам сегментации текста в формате Юникод. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера. По умолчанию: 255, максимальная: 300. Токены, размер которых превышает максимальную длину, разделяются. |
| uax_url_email | UaxUrlEmailTokenizer | Разбивает URL-адреса и сообщения электронной почты на один токен. Параметры maxTokenLength (тип: целое число) — максимальная длина маркера. По умолчанию: 255, максимальная: 300. Токены, размер которых превышает максимальную длину, разделяются. |
| Пробелы | (тип применяется только при наличии вариантов) | Разбивает текст по пробелам. Маркеры длиной более 255 знаков разделяются. |
1 Типы маркеризатора всегда префиксируются в коде таким #Microsoft.Azure.Search образом, что ClassicTokenizer фактически указывается как #Microsoft.Azure.Search.ClassicTokenizer. Мы удалили префикс, чтобы уменьшить ширину таблицы, но не забудьте включить его в код. Обратите внимание, что свойство tokenizer_type предоставляется только для токенизаторов, которые можно настроить. Если нет параметров, как в случае с буквенным токенизатором, то нет и связанного типа #Microsoft.Azure.Search.
Фильтры токенов
Фильтр токенов используется для фильтрации или изменения токенов, созданных токенизатором. Например, вы можете указать специальный фильтр, который преобразует все символы в нижний регистр. Пользовательский анализатор может содержать несколько фильтров токенов. Фильтры маркеров выполняются в том порядке, в котором они перечислены.
В следующей таблице фильтры маркеров, реализованные с помощью Apache Lucene, связаны с документацией по API Lucene.
| Имя фильтра маркеров | token_filter_type1 | Описание и параметры |
|---|---|---|
| arabic_normalization | (тип применяется только при наличии вариантов) | Фильтр маркеров, применяющий нормализатор арабского языка для нормализации орфографии. |
| апостроф | (тип применяется только при наличии вариантов) | Удаляет все знаки после апострофа (включая сам апостроф). |
| asciifolding | AsciiFoldingTokenFilter (Фильтр токенов с помощью ASCII-сглаживания) | Преобразует буквенные, числовые и символьные символы Юникода, которые не являются первыми 127 символами ASCII ( Basic Latin блок Юникода) в эквиваленты ASCII, если он существует.Параметры preserveOriginal (тип: логическое значение) — если true, сохраняется исходный токен. Значение по умолчанию — false. |
| cjk_bigram | CjkBigramTokenFilter | Формирует биграммы терминов ККЯ, создаваемых с помощью StandardTokenizer. Параметры ignoreScripts (тип: массив строк) — сценарий, который следует игнорировать. Допустимые значения: han, hiragana, katakanahangul. Значение по умолчанию — пустой список.outputUnigrams (тип: логическое значение) — установите значение true, если вы хотите всегда выводить и униграммы, и биграммы. Значение по умолчанию — false. |
| cjk_width | (тип применяется только при наличии вариантов) | Нормализует различия в ширине символов CJK. Преобразует варианты ASCII полной ширины в эквивалентные базовые латинские символы и варианты Катаканы половинной ширины в эквивалентную кану. |
| классическая | (тип применяется только при наличии вариантов) | Удаляет английские притяжательные местоимения и точки из аббревиатур. |
| common_grams | CommonGramTokenFilter | Создает биграммы для часто встречающихся терминов при индексировании. Отдельные термины также индексируются с наложением биграмм. Параметры commonWords (тип: массив строк) — набор распространенных слов. Значение по умолчанию — пустой список. Обязательный. ignoreCase (тип: bool) — если значение равно true, сопоставление происходит без учета регистра. Значение по умолчанию — false. queryMode (тип: булевский) — создает биграммы, а затем удаляет распространенные слова и отдельные термины, которые сопровождаются распространенным словом. Значение по умолчанию — false. |
| dictionary_decompounder | Фильтр токенов DictionaryDecompounder | Разбивает составные слова, распространенные во многих германских языках. Параметры wordList (тип: массив строк) — список слов для сопоставления. Значение по умолчанию — пустой список. Обязательный. minWordSize (тип: int) — будут обработаны только слова, длина которых превышает это значение. Значение по умолчанию равно 5. minSubwordSize (тип: int) — будут выводиться только те субслова, которые длиннее этого значения. Значение по умолчанию равно 2. maxSubwordSize (тип: int) — только подслова короче, чем это значение, будут выведены. Значение по умолчанию — 15. onlyLongestMatch (тип: логическое значение) — добавляется только самое длинное подходящее подслово в выходные данные. Значение по умолчанию — false. |
| edgeNGram_v2 | EdgeNGramTokenFilterV2 | Генерирует n-граммы заданных размеров, начиная с начала или конца входного токена. Параметры minGram (тип: целое число) — по умолчанию: 1, максимум: 300. maxGram (тип: целое число) — по умолчанию: 2, максимум 300. Значение должно превышать minGram. side (тип: строка) — указывает, с какой стороны входных данных следует создавать N-грамму. Допустимые значения: front, back |
| элизия | ElisionTokenFilter | Удаляет элизии. Например, l'avion (плоскость) преобразуется в avion (плоскость).Параметры articles (тип: массив строк) — набор статей, которые следует удалить. Значение по умолчанию — пустой список. Если список статей не задан, по умолчанию удаляются все французские статьи. |
| german_normalization | (тип применяется только при наличии опций) | Нормализует немецкие символы в соответствии с эвристикой алгоритма Snowball German2. |
| hindi_normalization | (тип доступен только при наличии опций) | Нормализует текст на хинди, чтобы удалить некоторые различия в орфографических вариациях. |
| indic_normalization | НормализацияТокеновДляИндийскихЯзыков (IndicNormalizationTokenFilter) | Нормализует представление текста в Юникоде на индийских языках. |
| хранить | KeepTokenFilter | Фильтр маркеров, который сохраняет только маркеры с текстом, содержащимся в указанном списке слов. Параметры keepWords (тип: массив строк) — список слов, которые следует оставить. Значение по умолчанию — пустой список. Обязательный. keepWordsCase (тип: логическое значение) — если значение равно true, сначала все слова преобразуются в нижний регистр. Значение по умолчанию — false. |
| keyword_marker | KeywordMarkerTokenFilter (фильтр метки ключевого слова) | Помечает термины как ключевые слова. Параметры keywords (тип: массив строк) — список слов, которые следует пометить как ключевые. Значение по умолчанию — пустой список. Обязательный. ignoreCase (тип: логическое значение) — если значение равно true, сначала все слова преобразуются в нижний регистр. Значение по умолчанию — false. |
| keyword_repeat | (тип применяется только когда доступны опции) | Выдает каждый входящий маркер дважды: один раз как ключевое слово, и один раз как неключевое слово. |
| kstem | (тип применяется только если доступны опции) | Высокопроизводительный kstem фильтр для английского языка. |
| длина | LengthTokenFilter | Удаляет слишком длинные или слишком короткие слова. Параметры min (тип: целое число) — минимальное число. По умолчанию: 0, максимум: 300. max (тип: целое число) — максимальное число. По умолчанию: 300, максимум: 300. |
| предел | Microsoft.Azure.Search.LimitTokenFilter | Ограничивает количество маркеров при индексировании. Параметры maxTokenCount (тип: целое число) — максимальное количество токенов для создания. Значение по умолчанию — 1. consumeAllTokens (тип: логическое значение) — требуется ли потреблять все маркеры из входных данных, даже если достигнуто максимальное значение maxTokenCount. Значение по умолчанию — false. |
| нижний регистр | (тип применяется только при наличии вариантов) | Нормализует токен текст в нижний регистр. |
| nGram_v2 | NGramTokenFilterV2 | Создает n-граммы заданных размеров. Параметры minGram (тип: целое число) — по умолчанию: 1, максимум: 300. maxGram (тип: целое число) — по умолчанию: 2, максимум 300. Значение должно превышать minGram. |
| pattern_capture | PatternCaptureTokenFilter | Использует регулярные выражения Java для создания нескольких токенов: по одному для каждой группы захвата в одном или нескольких шаблонах. Параметры patterns (тип: массив строк) — список шаблонов для сопоставления с каждым токеном. Обязательный. preserveOriginal (тип: логическое значение) — задайте значение true, чтобы вернуть исходный маркер, даже если один из шаблонов совпадает (значение по умолчанию: true). |
| замена_шаблона | PatternReplaceTokenFilter | Фильтр токенов, который применяет шаблон к каждому токену в потоке, заменяя соответствующие вхождения указанной строкой, предназначенной для замены. Параметры pattern (тип: строка) — обязательный параметр. замена (тип: строка) — обязательный параметр. |
| персидская_нормализация | (тип применяется только при наличии вариантов) | Применяет нормализацию для персидского языка. |
| фонетический | PhoneticTokenFilter | Создайте маркеры для фонетических совпадений. Параметры кодировщик (тип: строка) — используемый фонетический кодировщик. Допустимые значения: metaphone, doubleMetaphonesoundexrefinedSoundexcaverphone1caverphone2colognenysiis, koelnerPhonetik, . haasePhonetikbeiderMorse По умолчанию: metaphone. По умолчанию используется метафон.Дополнительные сведения см. в разделе encoder. replace (тип: логическое значение) — true, если закодированные токены должны заменить оригинальные токены, false, если они должны быть добавлены как синонимы. Значение по умолчанию: true. |
| porter_stem | (тип применяется только при наличии вариантов) | Преобразует поток токенов в соответствии с алгоритмом стемминга Портера. |
| обратный | (тип применяется только при наличии вариантов) | Переворачивает строку токенов. |
| скандинавская нормализация | (тип применяется только при наличии вариантов) | Нормализует использование взаимозаменяемых скандинавских знаков. |
| скандинавское складывание | (тип применяется только при наличии вариантов) | Свернуть скандинавские символы åÅäæÄÆв a и öÖøØв o. Он также дискриминирует использование двойных гласныхaa, ae, aooe иoo, оставляя только первый. |
| галька | ShingleTokenFilter | Создает сочетания токенов в виде одного токена. Параметры maxShingleSize (тип: целое число). Значение по умолчанию: 2. minShingleSize (тип: целое число). Значение по умолчанию: 2. outputUnigrams (тип: логическое значение) — если значение равно true, выходной поток содержит входные токены (униграммы), а также шинглы. Значение по умолчанию: true. outputUnigramsIfNoShingles (тип: логическое значение) — если значение равно true, переопределяет поведение outputUnigrams. Значение false следует использовать, когда объединения недоступны. Значение по умолчанию — false. tokenSeparator (тип: строка) — строка, используемая при соединении соседних токенов для формирования шинглов. По умолчанию используется одно пустое пространство . filterToken (тип: строка) — строка для вставки для каждой позиции, для которой нет маркера. Значение по умолчанию — _. |
| снежок | SnowballTokenFilter | Фильтр токенов Snowball. Параметры язык (тип: строка) — допустимые значения: armenian, basquecatalandanishdutchenglishfinnishfrenchgermangerman2hungarianitaliankplovinsnorwegianporterportugueseromanianrussianspanishswedishturkish |
| sorani_normalization | SoraniNormalizationTokenFilter | Нормализует представление текста в Юникоде Sorani .Параметры Нет. |
| stemmer | StemmerTokenFilter | Языковой стемминговый фильтр. Параметры язык (тип: строка) — допустимые значения включают: - arabic- armenian- basque- brazilian- bulgarian- catalan- czech- danish- dutch- dutchKp- english- lightEnglish- minimalEnglish- possessiveEnglish- porter2- lovins- finnish- lightFinnish- french- lightFrench- minimalFrench- galician- minimalGalician- german- german2- lightGerman- minimalGerman- greek- hindi- hungarian- lightHungarian- indonesian- irish- italian- lightItalian- sorani- latvian- norwegian- lightNorwegian- minimalNorwegian- lightNynorsk- minimalNynorsk- portuguese- lightPortuguese- minimalPortuguese- portugueseRslp- romanian- russian- lightRussian- spanish- lightSpanish- swedish- lightSwedish- turkish |
| stemmer_override | StemmerOverrideTokenFilter | Любые словарные однокоренные термины помечаются как ключевые слова, что предотвращает морфологический поиск по цепочке. Следует разместить перед всеми стемминговыми фильтрами. Параметры правила (тип: строковый массив) — правила стемминга в следующем формате word => stem, например ran => run. Значение по умолчанию — пустой список. Обязательный. |
| стоп-слова | StopwordsTokenFilter | Удаляет стоп-слова из потока токенов. По умолчанию фильтр использует стандартный список стоп-слов для английского языка. Параметры stopwords (тип: массив строк) — список стоп-слов. Невозможно указать, если задан список стоп-слов. stopwordsList (тип: строка) — стандартный список стоп-слов. Невозможно указать, если stopwords задано значение. Допустимые значения:arabic, armenian, basque, brazilian, bulgarian, catalan, czech, danish, dutch, english, finnish, french, galician, german, greek, hindi, hungarian, indonesian, irish, italian, latvian, norwegian, persian, portuguese, romanian, russian, sorani, spanish, swedish, thai, turkish, значение по умолчанию: english. Невозможно указать, если stopwords задано значение. ignoreCase (тип: bool) — если true, все слова сначала преобразуются в прописные буквы. Значение по умолчанию — false. removeTrailing (тип: логическое значение) — если значение равно true, последний поисковый термин игнорируется, если это стоп-слово. Значение по умолчанию: true. |
| синоним | СинонимTokenFilter | Сопоставляет одно-или многословные синонимы в потоке маркеров. Параметры synonyms (тип: массив строк) — обязательный параметр. Список синонимов в одном из следующих двух форматов. -невероятные, удивительные, сказочные => потрясающие - все термины слева от символа => заменяются термином справа. "incredible, unbelievable, fabulous, amazing" — список эквивалентных слов, разделенных запятыми. Установите параметр expand, чтобы изменить способ интерпретации этого списка. ignoreCase (тип: логическое значение) — меняет регистр входных данных для сопоставления. Значение по умолчанию — false. expand (type: bool) — если значение истинно, все слова в перечне синонимов (если => нотация не используется) соотносятся друг с другом. Следующий список: невероятный, удивительный, сказочный, замечательный эквивалент: невероятный, удивительный, сказочный, замечательный => невероятный, удивительный, сказочный, замечательный - Если не соответствует истине, следующий список: невероятный, невероятный, сказочный, удивительный эквивалентен: невероятному, неверьоятному, сказочному, удивительному => невероятному. |
| подстригать | (тип применяется только при наличии вариантов) | Усекает пробелы в начале и конце токенов. |
| укорачивать | TruncateTokenFilter | Усекает термины до определенной длины. Параметры length (тип: целое число) — по умолчанию: 300, максимум: 300. Обязательный. |
| уникальный | ФильтрУникальныхТокенов | Отфильтровывает маркеры с тем же текстом, что и в предыдущем маркере. Параметры onlyOnSamePosition (тип: логическое значение) — если указано, удаляет дубликаты только в той же позиции. Значение по умолчанию: true. |
| заглавная | (тип применяется только при наличии вариантов) | Нормализует текст токена, переводя его в верхний регистр. |
| word_delimiter | WordDelimiterTokenFilter | Разделяет слова на подслова и выполняет необязательные преобразования в группах подслов. Параметры generateWordParts (тип: bool) — приводит к созданию частей слов, например AzureSearchAzureSearch. Значение по умолчанию: true.generateNumberParts (тип: логическое значение) — создает определенное число подслов. Значение по умолчанию: true. catenateWords (тип: bool) — объединяет максимальные последовательности частей слов, например, Azure-Search становится AzureSearch. Значение по умолчанию — false.catenateNumbers (тип: bool) — объединяет максимально возможные последовательности числовых частей, например, 1-2 становится 12. Значение по умолчанию — false.catenateAll (тип: bool) — приводит к объединению всех частей подслов, например, Azure-Search-1 становится AzureSearch1. Значение по умолчанию — false.splitOnCaseChange (тип: bool) — если значение true, разбивает слова на caseChange, например AzureSearch становится AzureSearch. Значение по умолчанию: true.preserveOriginal — сохраняет изначальные слова и добавляет их в список подслов. Значение по умолчанию — false. splitOnNumerics (тип: bool) — если значение true, разделяется на числа, например Azure1Search становится Azure1Search. Значение по умолчанию: true.stemEnglishPossessive (тип: bool) — приводит к удалению конечных 's элементов для каждого подсловия. Значение по умолчанию: true.protectedWords (тип: массив строк) — токены, которые следует защитить от разделения. Значение по умолчанию — пустой список. |
1 Типы фильтров маркеров всегда префиксируются в коде таким #Microsoft.Azure.Search образом, что ArabicNormalizationTokenFilter фактически указывается как #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Мы удалили префикс, чтобы уменьшить ширину таблицы, но не забудьте включить его в код.