Ajouter des analyseurs personnalisés à des champs de chaîne dans l’index de Recherche Azure AI
Un analyseur personnalisé est une combinaison définie par l’utilisateur d’un générateur de jetons, d’un ou plusieurs filtres de jeton et d’un ou plusieurs filtres de caractères. Un analyseur personnalisé est spécifié dans un index de recherche, puis référencé par nom sur les définitions de champ qui nécessitent une analyse personnalisée. Un analyseur personnalisé est appelé par champ. Les attributs sur le champ déterminent s’il est utilisé pour l’indexation, les requêtes ou les deux.
Dans un analyseur personnalisé, les filtres de caractères préparent le texte d’entrée avant qu’il ne soit traité par le générateur de jetons (par exemple, en supprimant le balisage). Ensuite, le générateur de jetons décompose le texte en jetons. Enfin, les filtres de jeton modifient les jetons émis par le générateur de jetons. Pour des concepts et des exemples, consultez Analyseurs dans Recherche Azure AI.
Pourquoi utiliser un analyseur personnalisé
Un analyseur personnalisé vous permet de contrôler le processus de conversion de texte en jetons indexables et pouvant faire l’objet d’une recherche en vous permettant de choisir les types d’analyse ou de filtrage à appeler, ainsi que l’ordre dans lequel ils se produisent.
Créez et assignez un analyseur personnalisé si aucun des analyseurs par défaut (Lucence standard), des analyseurs intégrés ou des analyseurs de langage ne sont suffisants pour répondre à vos besoins. Vous pouvez également créer un analyseur personnalisé si vous souhaitez utiliser un analyseur intégré avec des options personnalisées. Par exemple, si vous souhaitez modifier maxTokenLength sur Standard, vous devez créer un analyseur personnalisé, avec un nom défini par l'utilisateur, pour définir cette option.
Les analyseurs personnalisés peuvent être utiles dans les scénarios suivants :
Utilisation de filtres de caractères pour supprimer le marquage HTML avant la segmentation des entrées de texte en unités lexicales, ou pour remplacer certains caractères ou symboles.
Recherche phonétique. Ajoutez un filtre phonétique pour permettre une recherche basée sur la façon dont un mot est prononcé et non pas sur la façon dont il s’écrit.
Analyse lexicale désactivée. Utilisez l’analyseur de mots clés pour créer des champs utilisables pour la recherche qui ne sont pas analysés.
Recherche rapide de préfixe/suffixe. Ajoutez le filtre de jetons Edge N-gram pour indexer les préfixes des mots afin de permettre la mise en correspondance rapide des préfixes. Combinez-le avec le filtre de jeton Reverse pour effectuer une correspondance de suffixes.
Segmentation personnalisée du texte en unités lexicales. Par exemple, utilisez le générateur de jetons Whitespace pour segmenter les phrases en jetons en utilisant l’espace comme délimiteur.
Conversion ASCII. Ajoutez le filtre de conversion ASCII Standard pour normaliser les signes diacritiques, comme ö ou ê, dans les termes de recherche.
Remarque
Les analyseurs personnalisés ne sont pas exposés dans le portail Azure. La seule façon d’ajouter un analyseur personnalisé est de le faire dans du code qui définit un index.
Créer un analyseur personnalisé
Pour créer un analyseur personnalisé, spécifiez-le dans la section analyzers
d’un index au moment de la conception, puis référencez-le dans les champs de recherche Edm.String
à l’aide de la propriété analyzer
ou de la paire indexAnalyzer
et searchAnalyzer
.
Une définition d’analyseur inclut un nom, un type, un ou plusieurs filtres de caractères, un générateur de jetons au maximum, et un ou plusieurs filtres de jetons pour le traitement venant après la segmentation du texte en unités lexicales. Les filtres de caractères sont appliqués avant la segmentation du texte en unités lexicales. Les filtres de jetons et les filtres de caractères sont appliqués de gauche à droite.
Les noms dans un analyseur personnalisé doivent être uniques et ne peuvent pas identiques à ceux des analyseurs intégrés, des générateurs de jetons, des filtres de jetons ou des filtres de caractères. Il doit contenir uniquement des lettres, des chiffres, des espaces, des tirets ou des traits de soulignement. Il doit commencer et se terminer uniquement par des caractères alphanumériques, et ne doit pas dépasser 128 caractères.
Le type doit être #Microsoft.Azure.Search.CustomAnalyzer.
charFilters
peut correspondre à un ou plusieurs filtres dans Filtres de caractères, traités avant la segmentation du texte en unités lexicales, dans l’ordre indiqué. Certains filtres de caractères ont des options qui peuvent être définies dans une sectioncharFilters
. Les filtres de caractères sont facultatifs.tokenizer
correspond à un seul Générateur de jetons. Une valeur est requise. Si vous avez besoin de plusieurs générateurs de jetons, vous pouvez créer plusieurs analyseurs personnalisés et les affecter champ par champ dans votre schéma d’index.tokenFilters
peut correspondre à un ou plusieurs filtres dans Filtres de jetons, traités après la segmentation du texte en unités lexicales, dans l’ordre indiqué. Pour les filtres de jetons avec des options, ajoutez une sectiontokenFilter
pour spécifier la configuration. Les filtres de jetons sont facultatifs.
Les analyseurs ne doivent pas produire de jetons de plus de 300 caractères, sinon l’indexation échouera. Pour tronquer les jetons longs ou les exclure, utilisez respectivement TruncateTokenFilter et LengthTokenFilter. Consultez Filtres de jetons pour en savoir plus.
"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,
...
}
]
Au sein d’une définition d’index, vous pouvez placer cette section n’importe où dans le corps d’une demande de création d’index, mais elle est généralement placée à la fin :
{
"name": "name_of_index",
"fields": [ ],
"suggesters": [ ],
"scoringProfiles": [ ],
"defaultScoringProfile": (optional) "...",
"corsOptions": (optional) { },
"analyzers":(optional)[ ],
"charFilters":(optional)[ ],
"tokenizers":(optional)[ ],
"tokenFilters":(optional)[ ]
}
La définition de l’analyseur est une partie de l’index. Les définitions des filtres de caractères, des générateurs de jetons et des filtres de jetons sont ajoutées à l’index seulement si vous définissez des options personnalisées. Pour utiliser tel quel un filtre ou un générateur de jetons existant, spécifiez son nom dans la définition de l’analyseur. Pour plus d’informations, consultez Créer un index (REST). Pour plus d’exemples, consultez Ajouter des analyseurs dans Recherche Azure AI.
Tester des analyseurs personnalisés
Vous pouvez utiliser l’Analyseur de test (REST) pour voir comment un analyseur décompose le texte donné en jetons.
Requête
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"
}
Response
{
"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
}
]
}
Mettre à jour des analyseurs personnalisés
Une fois qu’un analyseur, un générateur de jetons, un filtre de jetons ou un filtre de caractères est défini, il ne peut pas être modifié. D’autres peuvent être ajoutés à un index existant à condition que l’indicateur allowIndexDowntime
soit défini comme true dans la demande de mise à jour de l’index :
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Cette opération place votre index hors connexion pendant au moins quelques secondes, ce qui entraîne l’échec de vos demandes d’indexation et de requête. Les performances et la disponibilité en écriture de l’index peuvent être altérées pendant plusieurs minutes après la mise à jour de l’index, ou plus longtemps pour les très grands index. Ces effets sont cependant temporaires et finissent par se résoudre d’eux-mêmes.
Analyseurs intégrés
Si vous souhaitez utiliser un analyseur intégré avec des options personnalisées, la création d’un analyseur personnalisé est le mécanisme grâce auquel vous spécifiez ces options. En revanche, pour utiliser un analyseur intégré tel quel, il vous suffit de le référencer par son nom dans la définition du champ.
nom_analyseur | analyzer_type 1 | Description et options |
---|---|---|
mot clé | (le type s’applique seulement quand des options sont disponibles) | Traite l’intégralité du contenu d’un champ comme un seul jeton. Ceci est utile pour les données comme les codes postaux, les ID et certains noms de produit. |
pattern | PatternAnalyzer | Sépare le texte de façon flexible en termes via un modèle d’expression régulière. Options lowercase (type : booléen) : détermine si les termes sont en minuscules. La valeur par défaut est true. pattern (type : chaîne) : modèle d’expression régulière pour mettre en correspondance les séparateurs de jetons. La valeur par défaut est \W+ , qui correspond aux caractères non alphabétiques. flags (type : chaîne) : indicateurs d’expression régulière. La valeur par défaut est une chaîne vide. Valeurs autorisées : CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES stopwords (type : tableau de chaînes) : liste de mots vides. La valeur par défaut est une liste vide. |
simple | (le type s’applique seulement quand des options sont disponibles) | Divise le texte à l’endroit des caractères qui ne sont pas des lettres et le convertit en minuscules. |
standard (Également appelé standard.lucene) |
StandardAnalyzer | Analyseur Lucene Standard, composé du générateur de jetons standard, du filtre lowercase et du filtre stop. Options maxTokenLength (type : entier) : la longueur maximale des jetons. La valeur par défaut est 255. Les jetons dépassant la longueur maximale sont fractionnés. La longueur maximale des jetons qui peut être utilisée est de 300 caractères. stopwords (type : tableau de chaînes) : liste de mots vides. La valeur par défaut est une liste vide. |
standardasciifolding.lucene | (le type s’applique seulement quand des options sont disponibles) | Analyseur standard avec filtre de conversion ASCII. |
stop | StopAnalyzer | Divise un texte à l’endroit des caractères qui ne sont pas des lettres, applique les filtres de jetons lowercase et stopword. Options stopwords (type : tableau de chaînes) : liste de mots vides. La valeur par défaut est une liste prédéfinie pour l’anglais. |
whitespace | (le type s’applique seulement quand des options sont disponibles) | Un analyseur qui utilise le générateur de jetons whitespace. Les jetons d’une longueur supérieure à 255 caractères sont fractionnés. |
1 Les types d’analyseurs sont toujours préfixés dans le code avec #Microsoft.Azure.Search
de sorte que PatternAnalyzer
soit réellement spécifié comme #Microsoft.Azure.Search.PatternAnalyzer
. Nous avons supprimé le préfixe par souci de concision, mais ce préfixe est obligatoire dans votre code.
Le type d’analyseur (type_analyseur) est fourni seulement pour les analyseurs qui peuvent être personnalisés. S’il n’existe pas d’options, comme c’est le cas avec l’analyseur keyword, aucun type #Microsoft.Azure.Search n’est associé.
Filtres de caractères
Les filtres de caractères ajoutent le traitement avant qu'une chaîne atteigne le générateur de jetons.
La Recherche Azure AI prend en charge les filtres de caractères dans la liste suivante. Vous trouverez plus d'informations sur chacune d'elles dans la référence de l'API Lucene.
nom_filtre_caractères | char_filter_type 1 | Description et options |
---|---|---|
html_strip | (le type s’applique seulement quand des options sont disponibles) | Un filtre de caractères qui tente d’enlever retirer les constructions HTML. |
mapping | MappingCharFilter | Un filtre de caractères applique des mappages définis avec l’option mappings. La mise en correspondance est gourmande en ressources (la correspondance du modèle le plus long à un point donné l’emporte). La chaîne vide est autorisée comme remplacement. Options Mappings (type : tableau de chaînes) : une liste de mappages au format suivant : a=>b (toutes les occurrences du caractère a sont remplacées par le caractère b ). Obligatoire. |
pattern_replace | PatternReplaceCharFilter | Un filtre de caractères qui remplace des caractères dans la chaîne d’entrée. Il utilise une expression régulière pour identifier les séquences de caractères à conserver et un modèle de remplacement pour identifier les caractères à remplacer. Par exemple, le texte d’entrée = aa bb aa bb , modèle = (aa)\\\s+(bb) remplacement = $1#$2 , résultat = aa#bb aa#bb . Options pattern (type : chaîne) : obligatoire. replacement (type : chaîne) : obligatoire. |
1 Les types de filtres de caractères sont toujours préfixés dans le code avec #Microsoft.Azure.Search
de sorte que MappingCharFilter
soit réellement spécifié comme #Microsoft.Azure.Search.MappingCharFilter
. Nous avons supprimé le préfixe pour réduire la largeur du tableau, mais n’oubliez pas de l’inclure dans votre code. Notez que le type de filtre de caractères (type_filtre_caractères) est fourni seulement pour les filtres qui peuvent être personnalisés. S’il n’existe pas d’options, comme c’est le cas avec html_strip, aucun type #Microsoft.Azure.Search n’est associé.
Générateurs de jetons
Un générateur de jetons divise un texte continu en une séquence de jetons, par exemple en divisant une phrase en mots ou un mot en formes de racine.
La Recherche Azure AI prend en charge les générateurs de jetons dans la liste suivante. Vous trouverez plus d'informations sur chacune d'elles dans la référence de l'API Lucene.
nom_générateur_jetons | tokenizer_type 1 | Description et options |
---|---|---|
classique | ClassicTokenizer | Générateur de jetons basé sur la grammaire qui convient pour le traitement des documents dans la plupart des langues européennes. Options maxTokenLength (type : entier) : la longueur maximale des jetons. Par défaut : 255, maximum : 300. Les jetons dépassant la longueur maximale sont fractionnés. |
edgeNGram | EdgeNGramTokenizer | Génère des jetons à partir de l’entrée depuis une délimitation en n-grammes d’une ou plusieurs tailles données. Options minGram (type : entier) : par défaut 1, maximum : 300. maxGram (type : entier) : par défaut 2, maximum 300. Doit être supérieur à minGram. tokenChars (type : tableau de chaînes) : classes de caractères à conserver dans les jetons. Valeurs autorisées : letter , digit , whitespace , punctuation , symbol . La valeur par défaut est un tableau vide - conserve tous les caractères. |
keyword_v2 | KeywordTokenizerV2 | Génère la totalité de l’entrée sous la forme d’un unique jeton. Options maxTokenLength (type : entier) : la longueur maximale des jetons. Par défaut : 256, maximum : 300. Les jetons dépassant la longueur maximale sont fractionnés. |
letter | (le type s’applique seulement quand des options sont disponibles) | Divise un texte à l’endroit des caractères qui ne sont pas des lettres. Les jetons d’une longueur supérieure à 255 caractères sont fractionnés. |
lowercase | (le type s’applique seulement quand des options sont disponibles) | Divise le texte à l’endroit des caractères qui ne sont pas des lettres et le convertit en minuscules. Les jetons d’une longueur supérieure à 255 caractères sont fractionnés. |
microsoft_language_tokenizer | MicrosoftLanguageTokenizer | Divise le texte en utilisant des règles spécifiques à la langue. Options maxTokenLength (type : entier) : longueur maximale des jetons, par défaut 255, maximum 300. Les jetons dépassant la longueur maximale sont fractionnés. Les jetons de plus de 300 caractères sont d’abord fractionnés en jetons d’une longueur de 300 caractères, puis chacun de ces jetons est ensuite fractionné selon la valeur définie pour maxTokenLength. isSearchTokenizer (type : booléen) : défini sur true si utilisé comme générateur de jetons de recherche, sur false si utilisé comme générateur de jetons d’indexation. language (type : chaîne) : langue à utiliser, par défaut english . Les valeurs autorisées sont les suivantes : 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 | Divise le texte en utilisant des règles spécifiques à la langue et réduit les mots à leurs formes de base. Ce générateur de jetons effectue la lemmatisation. Options maxTokenLength (type : entier) : longueur maximale des jetons, par défaut 255, maximum 300. Les jetons dépassant la longueur maximale sont fractionnés. Les jetons de plus de 300 caractères sont d’abord fractionnés en jetons d’une longueur de 300 caractères, puis chacun de ces jetons est ensuite fractionné selon la valeur définie pour maxTokenLength. isSearchTokenizer (type : booléen) : défini sur true si utilisé comme générateur de jetons de recherche, sur false si utilisé comme générateur de jetons d’indexation. language (type : chaîne) : langue à utiliser, par défaut english . Les valeurs autorisées sont les suivantes : 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 | Génère des jetons à partir de l’entrée en n-grammes d’une ou plusieurs tailles données. Options minGram (type : entier) : par défaut 1, maximum : 300. maxGram (type : entier) : par défaut 2, maximum 300. Doit être supérieur à minGram. tokenChars (type : tableau de chaînes) : classes de caractères à conserver dans les jetons. Valeurs autorisées : letter , digit , whitespace , punctuation , symbol . La valeur par défaut est un tableau vide - conserve tous les caractères. |
path_hierarchy_v2 | PathHierarchyTokenizerV2 | Générateur de jetons pour les hiérarchies de type chemin. Options delimiter (type : chaîne) : par défaut : '/. replacement (type : chaîne) : s’il est défini, remplace le caractère délimiteur. Par défaut, identique à la valeur du délimiteur. maxTokenLength (type : entier) : la longueur maximale des jetons. Par défaut : 300, maximum : 300. Les chemins plus longs que maxTokenLength sont ignorés. reverse (type : booléen) : si la valeur est true, génère le jeton dans l’ordre inverse. Valeur par défaut : false. skip (type : booléen) : jetons initiaux à ignorer. La valeur par défaut est 0. |
pattern | PatternTokenizer | Ce générateur de jetons utilise la correspondance de modèle d’expression régulière pour construire des jetons distincts. Options pattern (type : chaîne) : un modèle d’expression régulière pour mettre en correspondance les séparateurs de jetons. La valeur par défaut est \W+ , qui correspond aux caractères non alphabétiques. flags (type : chaîne) : indicateurs d’expression régulière. La valeur par défaut est une chaîne vide. Valeurs autorisées : CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES group (type : entier) : groupe à extraire dans les jetons. La valeur par défaut est -1 (diviser). |
standard_v2 | StandardTokenizerV2 | Décompose le texte en suivant les règles de segmentation du texte Unicode. Options maxTokenLength (type : entier) : la longueur maximale des jetons. Par défaut : 255, maximum : 300. Les jetons dépassant la longueur maximale sont fractionnés. |
uax_url_email | UaxUrlEmailTokenizer | Génère des jetons pour des URL et des e-mails sous la forme d’un seul jeton. Options maxTokenLength (type : entier) : la longueur maximale des jetons. Par défaut : 255, maximum : 300. Les jetons dépassant la longueur maximale sont fractionnés. |
whitespace | (le type s’applique seulement quand des options sont disponibles) | Divise le texte au niveau des espaces. Les jetons d’une longueur supérieure à 255 caractères sont fractionnés. |
1 Les types de générateurs de jetons sont toujours préfixés dans le code avec #Microsoft.Azure.Search
de sorte que ClassicTokenizer
soit réellement spécifié comme #Microsoft.Azure.Search.ClassicTokenizer
. Nous avons supprimé le préfixe pour réduire la largeur du tableau, mais n’oubliez pas de l’inclure dans votre code. Notez que le type de générateur de jetons (type_générateur_jetons) est fourni seulement pour les générateurs de jetons qui peuvent être personnalisés. S’il n’existe pas d’options, comme c’est le cas avec le générateur de jetons letter, aucun type #Microsoft.Azure.Search n’est associé.
Filtres de jeton
Un filtre de jetons est utilisé pour filtrer ou modifier les jetons générés par un générateur de jetons. Par exemple, vous pouvez spécifier un filtre lowercase qui convertit tous les caractères en minuscules. Vous pouvez avoir plusieurs filtres de jetons dans un analyseur personnalisé. Les filtres de jetons s’exécutent dans l’ordre où ils sont listés.
Dans le tableau ci-dessous, les filtres de jetons qui sont implémentés avec Apache Lucene sont liés à la documentation de l’API Lucene.
nom_filtre_jetons | token_filter_type 1 | Description et options |
---|---|---|
arabic_normalization | (le type s’applique seulement quand des options sont disponibles) | Un filtre de jetons qui applique le normaliseur arabe pour normaliser l’orthographe. |
apostrophe | (le type s’applique seulement quand des options sont disponibles) | Supprime tous les caractères suivant une apostrophe (y compris l’apostrophe elle-même). |
asciifolding | AsciiFoldingTokenFilter | Convertit les caractères Unicode alphabétiques, numériques et symboliques qui ne sont pas dans les 127 premiers caractères ASCII (le bloc Unicode Basic Latin ) en leur équivalent ASCII, s’il existe.Options preserveOriginal (type : booléen) : si la valeur est true, le jeton d’origine est conservé. La valeur par défaut est false. |
cjk_bigram | CjkBigramTokenFilter | Forme des digrammes de termes CJC qui sont générés à partir de StandardTokenizer. Options ignoreScripts (type : tableau de chaînes) : scripts à ignorer. Les valeurs autorisées sont han , hiragana , katakana et hangul . La valeur par défaut est une liste vide.outputUnigrams (type : booléen) : à définir sur true si vous voulez toujours obtenir en sortie des unigrammes et des digrammes. La valeur par défaut est false. |
cjk_width | (le type s’applique seulement quand des options sont disponibles) | Normalise les différences de largeur de CJC. Convertit les variantes ASCII pleine chasse en équivalent Latin de base, et les variantes Katakana demi-chasse en équivalent kana. |
classique | (le type s’applique seulement quand des options sont disponibles) | Supprime les possessifs anglais et les points des acronymes. |
common_grams | CommonGramTokenFilter | Construit des digrammes pour les termes d’occurrence fréquente lors de l’indexation. Les termes uniques sont néanmoins aussi indexés, avec des digrammes superposés. Options commonWords (type : tableau de chaînes) : l’ensemble des mots courants. La valeur par défaut est une liste vide. Obligatoire. ignoreCase (type : booléen) : Si la valeur est true, la mise en correspondance ne respecte pas la casse. La valeur par défaut est false. queryMode (type : booléen) : génère des digrammes, puis supprime les mots courants et les termes uniques suivis d’un mot courant. La valeur par défaut est false. |
dictionary_decompounder | DictionaryDecompounderTokenFilter | Décompose les mots composés trouvés dans beaucoup de langues germaniques. Options wordList (type : tableau de chaînes) : la liste de mots dans laquelle rechercher des correspondances. La valeur par défaut est une liste vide. Obligatoire. minWordSize (type : entier) : seuls les mots d’une longueur supérieure à cette taille sont traités. La valeur par défaut est 5. minSubwordSize (type : entier) : seuls les sous-mots d’une longueur supérieure à cette taille figurent dans les résultats. La valeur par défaut est 2. maxSubwordSize (type : entier) : seuls les sous-mots d’une longueur inférieure à cette taille figurent dans les résultats. La valeur par défaut est 15. onlyLongestMatch (type : booléen) : ajoute seulement le sous-mot correspondant le plus long à la sortie. La valeur par défaut est false. |
edgeNGram_v2 | EdgeNGramTokenFilterV2 | Génère des n-grammes de la ou des tailles données en démarrant de l’avant ou de l’arrière d’un jeton d’entrée. Options minGram (type : entier) : par défaut 1, maximum : 300. maxGram (type : entier) : par défaut : 2, maximum : 300. Doit être supérieur à minGram. side (type : chaîne) : spécifie le côté de l’entrée à partir duquel le n-gramme doit être généré. Valeurs autorisées : front , back |
elision | ElisionTokenFilter | Supprime les élisions. Par exemple, l'avion (l’avion) est converti en avion (avion).Options articles (type : tableau de chaînes) : un ensemble d’articles à supprimer. La valeur par défaut est une liste vide. Si aucune liste d’articles n’est définie, par défaut, tous les articles du français sont supprimés. |
german_normalization | (le type s’applique seulement quand des options sont disponibles) | Normalise les caractères allemands en fonction de l’heuristique de l’algorithme Snowball German2. |
hindi_normalization | (le type s’applique seulement quand des options sont disponibles) | Normalise le texte dans Hindi de façon à supprimer des différences dans les variations orthographiques. |
indic_normalization | IndicNormalizationTokenFilter | Normalise la représentation Unicode du texte dans les langues indiennes. |
keep | KeepTokenFilter | Filtre de jetons qui conserve seulement les jetons avec du texte contenu dans la liste de mots spécifiée. Options keepWords (type : tableau de chaînes) : une liste de mots à conserver. La valeur par défaut est une liste vide. Obligatoire. keepWordsCase (type : booléen) : si la valeur est true, convertit d’abord tous les mots en minuscules. La valeur par défaut est false. |
keyword_marker | KeywordMarkerTokenFilter | Marque les termes comme mots clés. Options keywords (type : tableau de chaînes) : une liste de mots à marque comme mots clés. La valeur par défaut est une liste vide. Obligatoire. ignoreCase (type : booléen) : si la valeur est true, convertit d’abord tous les mots en minuscules. La valeur par défaut est false. |
keyword_repeat | (le type s’applique seulement quand des options sont disponibles) | Génère deux fois chaque jeton entrant : une fois comme mot clé et une fois comme non-mot clé. |
kstem | (le type s’applique seulement quand des options sont disponibles) | Un filtre kstem à hautes performances pour l’anglais. |
length | LengthTokenFilter | Supprime les mots qui sont trop longs ou trop courts. Options min (type : entier) : le nombre minimal. Par défaut : 0, maximum : 300. max (type : entier) : le nombre maximal. Par défaut : 300, maximum : 300. |
limit | Microsoft.Azure.Search.LimitTokenFilter | Limite le nombre de jetons lors de l’indexation. Options maxTokenCount (type : entier) : nombre maximal de jetons à produire. La valeur par défaut est 1. consumeAllTokens (type : booléen) : indique si tous les jetons de l’entrée doivent être utilisés même si maxTokenCount est atteint. La valeur par défaut est false. |
lowercase | (le type s’applique seulement quand des options sont disponibles) | Normalise le texte des jetons en minuscules. |
nGram_v2 | NGramTokenFilterV2 | Génère des n-grammes de la taille donnée. Options minGram (type : entier) : par défaut 1, maximum : 300. maxGram (type : entier) : par défaut : 2, maximum : 300. Doit être supérieur à minGram. |
pattern_capture | PatternCaptureTokenFilter | Utilise des expressions régulières Java pour générer plusieurs jetons, un pour chaque groupe de capture dans un ou plusieurs modèles. Options patterns (type : tableau de chaînes) : une liste de modèles à mettre en correspondance avec chaque jeton. Obligatoire. preserveOriginal (type : booléen) : à définir sur true pour retourner le jeton d’origine, même si un des modèles est en correspondance. Valeur par défaut : true |
pattern_replace | PatternReplaceTokenFilter | Un filtre de jeton qui applique un modèle à chaque jeton du flux, en remplaçant les occurrences en correspondance par la chaîne de remplacement spécifiée. Options pattern (type : chaîne) : obligatoire. replacement (type : chaîne) : obligatoire. |
persian_normalization | (le type s’applique seulement quand des options sont disponibles) | Applique la normalisation pour le persan. |
phonetic | PhoneticTokenFilter | Crée des jetons pour les correspondances phonétiques. Options encoder (type : chaîne) : Encodeur phonétique à utiliser. Les valeurs autorisées sont metaphone , doubleMetaphone , soundex , refinedSoundex , caverphone1 , caverphone2 , cologne , nysiis , koelnerPhonetik , haasePhonetik et beiderMorse . Par défaut : metaphone . La valeur par défaut est metaphone.Pour plus d’informations, consultez encoder. replace (type : booléen) : true si les jetons encodés doivent remplacer les jetons d’origine ; false s’ils doivent être ajoutés comme synonymes. La valeur par défaut est true. |
porter_stem | (le type s’applique seulement quand des options sont disponibles) | Transforme le flux de jetons selon l’algorithme de recherche de radical de Porter. |
inverser | (le type s’applique seulement quand des options sont disponibles) | Inverse la chaîne des jetons. |
scandinavian_normalization | (le type s’applique seulement quand des options sont disponibles) | Normalise l’utilisation des caractères scandinaves interchangeables. |
scandinavian_folding | (le type s’applique seulement quand des options sont disponibles) | Convertit les caractères scandinaves åÅäæÄÆ en a and öÖøØ en o . Il identifie aussi l’utilisation des voyelles doubles aa , ae , ao , oe et oo , et conserve seulement la première voyelle. |
shingle | ShingleTokenFilter | Crée des combinaisons de jetons sous la forme d’un unique jeton. Options maxShingleSize (type : entier) : la valeur par défaut est 2. minShingleSize (type : entier) : la valeur par défaut est 2. outputUnigrams (type : booléen) : si la valeur est true, le flux de sortie contient les jetons d’entrée (unigrammes) ainsi que les n-grammes composés de mots. La valeur par défaut est true. outputUnigramsIfNoShingles (type : booléen) : si la valeur est true, remplace le comportement de outputUnigrams==false quand aucun n-gramme composé de mots n’est disponible. La valeur par défaut est false. tokenSeparator (type : chaîne) : la chaîne à utiliser lors de la jonction de jetons adjacents pour former un n-gramme composé de mots. La valeur par défaut est un espace vide unique . filterToken (type : chaîne) : la chaîne à insérer pour chaque position à laquelle il n’y a pas de jeton. Par défaut, il s’agit de _ . |
snowball | SnowballTokenFilter | Filtre de jetons Snowball. Options language (type : chaîne) : les valeurs autorisées sont : armenian , basque , catalan , danish , dutch , english , finnish , french , german , german2 , hungarian , italian , kp , lovins , norwegian , porter , portuguese , romanian , russian , spanish , swedish , turkish |
sorani_normalization | SoraniNormalizationTokenFilter | Normalise la représentation Unicode du texte en Sorani .Options Aucune. |
stemmer | StemmerTokenFilter | Filtre de recherche de radical spécifique à la langue. Options language (type : chaîne) : les valeurs autorisées sont : - 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 | Les termes dont le radical est trouvé dans un dictionnaire sont marqués comme mots clés, ce qui empêche la recherche de radical plus avant dans la chaîne. Doit être placé avant les filtres de recherche de radical. Options rules (type : tableau de chaînes) : règles de recherche de radical au format suivant word => stem , par exemple ran => run . La valeur par défaut est une liste vide. Obligatoire. |
stopwords | StopwordsTokenFilter | Supprime les mots vides d’un flux de jetons. Par défaut, le filtre utilise une liste de mots vides prédéfinie pour l’anglais. Options stopwords (type : tableau de chaînes) : liste de mots vides. Ne peut pas être spécifié si une liste stopwordsList est spécifiée. stopwordsList (type : chaîne) : une liste prédéfinie de mots vides. Ne peut pas être spécifié si stopwords est spécifié. Les valeurs autorisées sont 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 , par défaut : english . Ne peut pas être spécifié si stopwords est spécifié. ignoreCase (type : booléen) : si la valeur est true, tous les mots sont d’abord convertis en minuscules. La valeur par défaut est false. removeTrailing (type : booléen) : si la valeur est true, ignore le dernier terme de recherche s’il s’agit d’un mot vide. La valeur par défaut est true. |
synonym | SynonymTokenFilter | Met en correspondance des synonymes constitués d’un ou plusieurs mots dans un flux de jetons. Options synonyms (type : tableau de chaînes) : obligatoire. Liste des synonymes dans l’un des deux formats suivants : - incroyable, inouï, fabuleux => étonnant : tous les termes du côté gauche du symbole => sont remplacés par tous les termes du côté droit. - incroyable, inouï, fabuleux, étonnant : une liste séparée par des virgules de mots équivalents. Définissez l’option expand pour changer la façon dont cette liste est interprétée. ignoreCase (type : booléen) : convertit la casse de l’entrée pour la mise en correspondance. La valeur par défaut est false. expand (type : booléen) : si la valeur est true, tous les mots de la liste des synonymes (si la notation « => » n’est pas utilisée) sont mappés les uns aux autres. La liste suivante : incroyable, inouï, fabuleux, étonnant équivaut à : incroyable, inouï, fabuleux, étonnant => incroyable, inouï, fabuleux, étonnant - Si la valeur est false, la liste suivante : incroyable, inouï, fabuleux, étonnant équivaut à : incroyable, inouï, fabuleux, étonnant => incroyable. |
trim | (le type s’applique seulement quand des options sont disponibles) | Supprime les espaces de début et de fin des jetons. |
truncate | TruncateTokenFilter | Tronque les termes à une longueur spécifique. Options length (type : entier) : par défaut 300, maximum 300. Obligatoire. |
unique | UniqueTokenFilter | Élimine les jetons avec le même texte que le jeton précédent. Options onlyOnSamePosition (type : booléen) : s’il est défini, supprime les doublons seulement à la même position. La valeur par défaut est true. |
uppercase | (le type s’applique seulement quand des options sont disponibles) | Normalise le texte des jetons en majuscules. |
word_delimiter | WordDelimiterTokenFilter | Divise les mots en sous-mots et effectue des transformations facultatives sur les groupes de sous-mots. Options generateWordParts (type : booléen) : provoque la génération de parties de mots ; par exemple AzureSearch devient Azure Search . La valeur par défaut est true.generateNumberParts (type : booléen) : provoque la génération de sous-mots constitués de nombres. La valeur par défaut est true. catenateWords (type : booléen) : provoque la concaténation maximale des parties de mots ; par exemple Azure-Search devient AzureSearch . La valeur par défaut est false.catenateNumbers (type : booléen) : provoque la concaténation maximale des parties numériques ; par exemple 1-2 devient 12 . La valeur par défaut est false.catenateAll (type : booléen) : provoque la concaténation de tous les éléments qui sont des sous-mots ; par exemple Azure-Search-1 devient AzureSearch1 . La valeur par défaut est false.splitOnCaseChange (type : booléen) : si la valeur est true, fractionne les mots au niveau des changements de casse ; par exemple AzureSearch devient Azure Search . La valeur par défaut est true.preserveOriginal : fait que les mots d’origine sont conservés et ajoutés à la liste des sous-mots. La valeur par défaut est false. splitOnNumerics (type : booléen) : si la valeur est true, fractionne au niveau des nombres ; par exemple Azure1Search devient Azure 1 Search . La valeur par défaut est true.stemEnglishPossessive (type : booléen) : provoque la suppression du 's final pour chaque sous-mot. La valeur par défaut est true.protectedWords (type : tableau de chaînes) : jetons à protéger de la délimitation. La valeur par défaut est une liste vide. |
1 Les types de filtres de jetons sont toujours préfixés dans le code avec #Microsoft.Azure.Search
de sorte que ArabicNormalizationTokenFilter
soit réellement spécifié comme #Microsoft.Azure.Search.ArabicNormalizationTokenFilter
. Nous avons supprimé le préfixe pour réduire la largeur du tableau, mais n’oubliez pas de l’inclure dans votre code.