Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un analizador personalizado es un componente del análisis léxico sobre el contenido de texto sin formato. Se trata de una combinación definida por el usuario de un tokenizador, uno o varios filtros de token y uno o varios filtros de caracteres. Un analizador personalizado se especifica en un índice de búsqueda y, a continuación, se hace referencia a él por su nombre en las definiciones de campo que requieren un análisis personalizado. Se invoca un analizador personalizado por campo. Los atributos del campo determinan si se usa para la indexación, las consultas o ambos.
En un analizador personalizado, los filtros de caracteres preparan el texto de entrada antes de que lo procese el tokenizador (por ejemplo, la eliminación del marcado). A continuación, el tokenizador divide el texto en tokens. Por último, los filtros de token modifican los tokens emitidos por el tokenizador. Para obtener conceptos y ejemplos, consulte Analizadores en Búsqueda de Azure AI y Tutorial: Creación de un analizador personalizado para númerosde teléfono.
¿Por qué se debe usar un analizador personalizado?
Debe considerar un analizador personalizado en flujos de trabajo de búsqueda clásicos que no incluyan modelos de lenguaje grandes ni su capacidad para manejar anomalías de contenido.
En la búsqueda de clases, un analizador personalizado le proporciona control sobre el proceso de convertir texto sin formato en tokens indexables y buscables, permitiéndole elegir qué tipos de análisis o filtros se van a invocar y el orden en el que ocurren.
Cree y asigne un analizador personalizado si ninguno de los analizadores predeterminados (Lucene estándar), integrados o analizadores de lenguaje son suficientes para sus necesidades. También puede crear un analizador personalizado si desea usar un analizador integrado con opciones personalizadas. Por ejemplo, si desea cambiar el maxTokenLength en Standard Lucene, crearía un analizador personalizado, con un nombre definido por el usuario, para establecer esa opción.
Los siguientes son algunos de los escenarios en los que los analizadores personalizados pueden resultar útiles:
Uso de filtros de caracteres para eliminar el marcado HTML antes de que se tokenicen las entradas de texto o para reemplazar ciertos caracteres o símbolos.
Búsqueda fonética. Agregue un filtro fonético para habilitar la búsqueda basada en cómo suena una palabra en lugar de en cómo se escribe.
Deshabilitar el análisis léxico. Use el analizador de palabras clave para crear campos de búsqueda que no se analizan.
Búsqueda rápida de prefijo o sufijo. Agregue el filtro de token Edge N-gram para indexar prefijos en los índices de palabras y habilitar la coincidencia rápida de prefijos. Combínelo con el filtro de tokens Reverse para realizar coincidencia de sufijos.
Tokenización personalizada. Por ejemplo, use el tokenizador Whitespace para dividir las oraciones en tokens usando el espacio en blanco como delimitador.
Normalización de caracteres ASCII. Agregue el filtro de plegado ASCII estándar para normalizar los signos diacríticos como ö o ê en los términos de búsqueda.
Nota:
Los analizadores personalizados no se exponen en Azure Portal. La única manera de agregar un analizador personalizado es mediante código que crea un esquema de índice.
Creación de un analizador personalizado
Para crear un analizador personalizado, especifíquelo en la sección analyzers de un índice en tiempo de diseño y, a continuación, haga referencia a él en los campos Edm.String en los que puedan realizarse búsquedas mediante la propiedad analyzer o el par indexAnalyzer y searchAnalyzer.
Una definición de analizador incluye un nombre, un tipo, uno o varios filtros de caracteres, un máximo de un tokenizador y uno o varios filtros de token para el procesamiento posterior a la tokenización. Los filtros de caracteres se aplican antes de la tokenización. Los filtros de token y los filtros de caracteres se aplican de izquierda a derecha.
Los nombres de un analizador personalizado deben ser únicos y no pueden ser iguales que ninguno de los analizadores integrados, tokenizadores, filtros de token o caracteres. Los nombres constan de letras, dígitos, espacios, guiones o caracteres de subrayado. Los nombres deben comenzar y terminar con caracteres de texto plano. Los nombres deben tener menos de 128 caracteres de longitud.
El tipo debe ser #Microsoft.Azure.Search.CustomAnalyzer.
charFilterspuede ser uno o varios filtros de Filtros de caracteres, procesados antes de la tokenización, en el orden proporcionado. Algunos filtros de caracteres tienen opciones que se pueden definir en una seccióncharFilters. Los filtros de caracteres son opcionales.tokenizeres exactamente un tokenizador. Se requiere un valor. Si necesita más de un tokenizer, puede crear varios analizadores personalizados y asignarlos campo por campo en el esquema de índice.tokenFilterspuede ser uno o varios filtros de Filtros de token, procesados después de la tokenización, en el orden proporcionado. Para los filtros de token que tienen opciones, agregue una seccióntokenFilterpara especificar la configuración. Los filtros de token son opcionales.
Los analizadores no deben generar tokens de más de 300 caracteres; de lo contrario, se producirá un error de indexación. Para recortar tokens largos u omitirlos, utilice TruncateTokenFilter y LengthTokenFilter respectivamente. Consulte Filtros de token como referencia.
"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,
...
}
]
Dentro de una definición de índice, puede colocar esta sección en cualquier lugar del cuerpo de una solicitud de creación de índice, pero normalmente va al final:
{
"name": "name_of_index",
"fields": [ ],
"suggesters": [ ],
"scoringProfiles": [ ],
"defaultScoringProfile": (optional) "...",
"corsOptions": (optional) { },
"analyzers":(optional)[ ],
"charFilters":(optional)[ ],
"tokenizers":(optional)[ ],
"tokenFilters":(optional)[ ]
}
La definición del analizador es una parte del índice más grande. Las definiciones para los filtros de caracteres, tokenizadores y filtros de token se agregan al índice solo si está configurando las opciones personalizadas. Para utilizar un filtro existente o tokenizador como está, especifíquelo por nombre en la definición del analizador. Para más información, consulte Creación de un índice (REST). Para ver más ejemplos, consulte Adición de analizadores en Azure AI Search.
Prueba de analizadores personalizados
Puede usar el analizador de pruebas (REST) para ver cómo un analizador descompone el texto dado en tokens.
Solicitar
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"
}
Respuesta
{
"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
}
]
}
Actualización de analizadores personalizados
Una vez definido un analizador, un tokenizador, un filtro de token o un filtro de caracteres, no se puede modificar. Se pueden agregar unos nuevos a un índice existente solo si la marca de allowIndexDowntime está establecida en true en la solicitud de actualización del índice:
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Esta operación lleva su índice sin conexión durante al menos unos segundos, haciendo que sus solicitudes de indexación y consulta fallen. El rendimiento y la disponibilidad de escritura del índice pueden ser desiguales durante varios minutos después de que se actualice el índice, o durante más tiempo en el caso de índices muy grandes, pero estos efectos son temporales y, al final, se resuelven por sí solos.
Analizadores integrados
Si desea usar un analizador integrado con opciones personalizadas, la creación de un analizador personalizado es el mecanismo para especificar esas opciones. Por el contrario, para usar un analizador integrado tal cual, solo tiene que hacer referencia a él por su nombre en la definición del campo.
| analyzer_name | analyzer_type1 | Descripción y opciones |
|---|---|---|
| palabra clave | (el tipo solo se aplica cuando las opciones están disponibles) | Trata todo el contenido de un campo como un solo token. Esto es útil para los datos como códigos postales, identificadores y algunos nombres de producto. |
| patrón | Analizador de patrones | Separa el texto de manera flexible en términos a través de un patrón de expresión regular. Opciones lowercase (tipo: booleano): determina si los términos se ponen en minúsculas. El valor predeterminado es true. pattern (tipo: cadena): un patrón de expresión regular para que coincida con los separadores de token. El valor predeterminado es \W+, que coincide con los caracteres que no son una palabra. flags (tipo: cadena): marcas de expresión regular. El valor predeterminado es una cadena vacía. Valores permitidos: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES stopwords (tipo: matriz de cadenas): una lista de palabras irrelevantes. El valor predeterminado es una lista vacía. |
| sencillo | (el tipo solo se aplica cuando las opciones están disponibles) | Divide el texto por donde no hay letras y lo convierte en minúsculas. |
|
Estándar (También se denomina standard.lucene) |
AnalizadorEstándar | Analizador estándar de Lucene, compuesto por el tokenizador estándar, el filtro de minúsculas y el filtro de palabras irrelevantes. Opciones maxTokenLength (tipo: entero): la longitud máxima del token. El valor predeterminado es 255. Los tokens que sobrepasen la longitud máxima se dividen. La longitud máxima del token que se puede usar es 300 caracteres. stopwords (tipo: matriz de cadenas): una lista de palabras irrelevantes. El valor predeterminado es una lista vacía. |
| standardasciifolding.lucene | (el tipo solo se aplica cuando las opciones están disponibles) | Analizador estándar con el filtro de plegado ASCII. |
| detener | StopAnalyzer | Divide el texto en caracteres no alfabéticos y aplica los filtros de tokens de minúsculas y palabras vacías. Opciones stopwords (tipo: matriz de cadenas): una lista de palabras irrelevantes. El valor predeterminado es una lista predefinida para inglés. |
| Espacio en blanco | (el tipo solo se aplica cuando las opciones están disponibles) | Un analizador que usa el tokenizador de espacios en blanco. Los tokens que son más largos que 255 caracteres se dividen. |
1 Los tipos de analizador siempre van precedidos en el código por #Microsoft.Azure.Search de modo que PatternAnalyzer se especificaría realmente como #Microsoft.Azure.Search.PatternAnalyzer. Hemos quitado el prefijo por brevedad, pero es obligatorio en el código.
analyzer_type solo se proporciona para analizadores que se pueden personalizar. Si no hay opciones, como sucede con el analizador de palabras clave, no hay ningún tipo #Microsoft.Azure.Search asociado.
Filtros de caracteres
Los filtros de caracteres agregan procesamiento antes de que una cadena llegue al tokenizador.
Azure AI Search admite los filtros de caracteres de la lista siguiente. Puede encontrar más información sobre cada uno de ellos en la referencia de la API de Lucene.
| char_filter_name | char_filter_type1 | Descripción y opciones |
|---|---|---|
| html_strip | (el tipo solo se aplica cuando las opciones están disponibles) | Filtro de caracteres que intenta eliminar construcciones HTML. |
| cartografía | MappingCharFilter | Un filtro de caracteres que aplica mapeos definidos con la opción de mapeos. La coincidencia es ambiciosa (la mayor coincidencia de patrones en un momento dado gana). Se permite que la sustitución sea una cadena vacía. Opciones mappings (tipo: matriz de cadenas): una lista de asignaciones con el siguiente formato: a=>b (todas las ocurrencias del carácter a son reemplazadas por el carácter b). Obligatorio |
| pattern_replace | PatternReplaceCharFilter | Un filtro de caracteres que reemplaza los caracteres en la cadena de entrada. Usa una expresión regular para identificar las secuencias de caracteres que se desean conservar y un patrón de reemplazo para identificar los caracteres que se desean reemplazar. Por ejemplo, texto de entrada = aa bb aa bb, patrón = (aa)\\\s+(bb) reemplazo = $1#$2, resultado = aa#bb aa#bb. Opciones pattern (tipo: cadena) - Requerido. replacement (tipo: cadena): necesario. |
1 Los tipos de filtro de caracteres siempre van precedidos en el código por #Microsoft.Azure.Search de modo que MappingCharFilter se especificaría realmente como #Microsoft.Azure.Search.MappingCharFilter. Hemos quitado el prefijo para reducir el ancho de la tabla, pero no olvide incluirlo en el código. Tenga en cuenta que char_filter_type solo se proporciona para filtros que se pueden personalizar. Si no hay opciones, como sucede con html_strip, no hay ningún tipo #Microsoft.Azure.Search asociado.
Tokenizadores
Un tokenizador divide un texto continuo en una secuencia de tokens, como al dividir una frase en palabras o una palabra en sus formas raíz.
Azure AI Search admite los tokenizadores de la lista siguiente. Puede encontrar más información sobre cada uno de ellos en la referencia de la API de Lucene.
| tokenizer_name | tokenizer_type1 | Descripción y opciones |
|---|---|---|
| clásico | ClassicTokenizer | Tokenizador basado en la gramática que es adecuado para procesar la mayoría de los documentos de idiomas Europaos. Opciones maxTokenLength (tipo: entero): la longitud máxima del token. Valor predeterminado: 255, máximo: 300. Los tokens que sobrepasen la longitud máxima se dividen. |
| edgeNGram | EdgeNGramTokenizer | Tokeniza la entrada de un borde en n gramos de tamaños especificados. Opciones minGram (tipo: entero): Valor predeterminado: 1, máximo: 300. maxGram (tipo: entero) - Valor predeterminado: 2, valor máximo: 300. El valor debe ser mayor que minGram. tokenChars (tipo: matriz de cadenas): clases de caracteres para mantener en los tokens. Valores permitidos: letter, digit, whitespace, punctuation, symbol. Por defecto, una matriz vacía: retiene todos los caracteres. |
| keyword_v2 | KeywordTokenizerV2 | Emite la entrada completa como un solo token. Opciones maxTokenLength (tipo: entero): la longitud máxima del token. Valor predeterminado: 256, máximo: 300. Los tokens que sobrepasen la longitud máxima se dividen. |
| letter | (el tipo solo se aplica cuando las opciones están disponibles) | Divide el texto en caracteres no alfabéticos. Los tokens que tienen más de 255 caracteres se dividen. |
| lowercase | (el tipo solo se aplica cuando las opciones están disponibles) | Divide el texto por donde no hay letras y lo convierte en minúsculas. Los tokens que son más largos de 255 caracteres se dividen. |
| microsoft_language_tokenizer | MicrosoftLanguageTokenizer | Divide el texto mediante reglas específicas del idioma. Opciones maxTokenLength (tipo: entero): Longitud máxima del token, valor predeterminado: 255, máximo: 300. Los tokens que sobrepasen la longitud máxima se dividen. Los tokens de más de 300 caracteres primero se dividen en tokens de 300 de longitud y, luego, cada uno de esos tokens se divide según el valor de maxTokenLength establecido. isSearchTokenizer (tipo: bool): se establece en true si se usa como el tokenizador de búsqueda; se establece en false si se usa como el tokenizador de indexación. language (tipo: cadena): idioma que se va a usar, valor predeterminado english. Los valores permitidos son: 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 | Divide el texto mediante reglas específicas del idioma y reduce las palabras a sus formas base. Este tokenizador lleva a cabo la lematización. Opciones maxTokenLength (tipo: entero): Longitud máxima del token, valor predeterminado: 255, máximo: 300. Los tokens que sobrepasen la longitud máxima se dividen. Los tokens de más de 300 caracteres primero se dividen en tokens de 300 de longitud y, luego, cada uno de esos tokens se divide según el valor de maxTokenLength establecido. isSearchTokenizer (tipo: booleano): establecer a true si se usa como tokenizador de búsqueda; establecer a false si se usa como tokenizador de indexación. language (tipo: cadena): idioma que se va a usar, valor predeterminado english. Los valores permitidos son: 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 | Tokenizador de NGram | Tokeniza la entrada en n gramos de los tamaños especificados. Opciones minGram (tipo: entero): Valor predeterminado: 1, máximo: 300. maxGram (tipo: entero) - Valor predeterminado: 2, valor máximo: 300. El valor debe ser mayor que minGram. tokenChars (tipo: matriz de cadenas): clases de caracteres para mantener en los tokens. Valores permitidos: letter, digit, whitespace, punctuation, symbol. Se predetermina a un array vacío: mantiene todos los caracteres. |
| path_hierarchy_v2 | PathHierarchyTokenizerV2 | Tokenizador para jerarquías similares a rutas de acceso.
Opciones delimiter (tipo: cadena) - Por defecto: '/. replacement (tipo: cadena): si está establecido, reemplaza el carácter delimitador. El valor predeterminado es el mismo que el valor del delimitador. maxTokenLength (tipo: entero): la longitud máxima del token. Valor predeterminado: 300, máximo: 300. Las rutas cuya longitud supera el maxTokenLength se omiten. reverse (tipo: booleano): si es true, genera el token en orden inverso. Valor predeterminado: false. skip (tipo: booleano) - omitir tokens iniciales. El valor predeterminado es 0. |
| patrón | PatternTokenizer (en inglés) | Este tokenizador utiliza la coincidencia de patrones de regex para construir tokens diferenciados. Opciones pattern (tipo: cadena): patrón de expresión regular que coincidirá con los separadores de token. El valor predeterminado es \W+, que coincide con los caracteres que no son una palabra. flags (tipo: cadena): marcas de expresión regular. El valor predeterminado es una cadena vacía. Valores permitidos: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES group (tipo: int) - El grupo del que extraer fichas. El valor predeterminado es -1 (dividir). |
| standard_v2 | StandardTokenizerV2 | Divide el texto siguiendo las reglas de segmentación de texto Unicode. Opciones maxTokenLength (tipo: entero): la longitud máxima del token. Valor predeterminado: 255, máximo: 300. Los tokens que sobrepasen la longitud máxima se dividen. |
| uax_url_email | UaxUrlEmailTokenizer | Tokeniza las direcciones URL y los correos electrónicos como un token. Opciones maxTokenLength (tipo: entero): la longitud máxima del token. Valor predeterminado: 255, máximo: 300. Los tokens que sobrepasen la longitud máxima se dividen. |
| Espacio en blanco | (el tipo solo se aplica cuando las opciones están disponibles) | Divide el texto en espacios en blanco. Los tokens que son más largos que 255 caracteres se dividen. |
1 Los tipos de tokenizador siempre van precedidos en el código por #Microsoft.Azure.Search de modo que ClassicTokenizer se especificaría realmente como #Microsoft.Azure.Search.ClassicTokenizer. Hemos quitado el prefijo para reducir el ancho de la tabla, pero no olvide incluirlo en el código. Tenga en cuenta que tokenizer_type solo se proporciona para tokenizadores que se puedan personalizar. Si no hay opciones, como sucede con el tokenizador de letras, no hay ningún tipo #Microsoft.Azure.Search asociado.
Filtros de token
Un filtro de token se utiliza para filtrar o modificar los tokens generados por un tokenizer. Por ejemplo, puede especificar un filtro en minúsculas que convierte todos los caracteres a minúsculas. Puede tener varios filtros de token en un analizador personalizado. Los filtros de token se ejecutan en el orden en que aparecen.
En la tabla siguiente, los filtros de token que se implementan mediante Apache Lucene están vinculados a la documentación de la API de Lucene.
| token_filter_name | token_filter_type1 | Descripción y opciones |
|---|---|---|
| arabic_normalization | (el tipo solo se aplica cuando las opciones están disponibles) | Un filtro de token que aplica el normalizador de árabe para normalizar la ortografía. |
| apostrophe | (el tipo solo se aplica cuando las opciones están disponibles) | Elimina todos los caracteres después de un apóstrofo (incluyendo el apóstrofo en sí mismo). |
| asciifolding | AsciiFoldingTokenFilter | Convierte los caracteres Unicode alfabéticos, numéricos y simbólicos que no están en los primeros 127 caracteres ASCII (el bloque Unicode Basic Latin) en sus valores equivalentes ASCII, si existe uno.Opciones preserveOriginal (tipo: booleano): si es true, se mantiene el token original. El valor predeterminado es false. |
| cjk_bigram | CjkBigramTokenFilter | Forma bigramas de términos CJK que son generados a partir de StandardTokenizer. Opciones ignoreScripts (tipo: matriz de cadenas): scripts que se desea pasar por alto. Los valores permitidos son han, hiragana, katakana y hangul. El valor predeterminado es una lista vacía.outputUnigrams (tipo: bool): configúrelo a true si desea siempre generar tanto unigramas como bigramas. El valor predeterminado es false. |
| cjk_width | (el tipo solo se aplica cuando las opciones están disponibles) | Normaliza las diferencias de ancho de CJK. Pliega las variantes ASCII de ancho completo en el latín básico equivalente y las variantes Katakana de medio ancho en el kana equivalente. |
| clásico | (el tipo solo se aplica cuando las opciones están disponibles) | Quita los posesivos del inglés y los puntos de los acrónimos. |
| gramas_comunes | CommonGramTokenFilter | Construye bigramas para términos que se repiten con frecuencia durante la indexación. Los términos individuales también se indexan, con los bigramas superpuestos. Opciones commonWords (tipo: matriz de cadenas): el conjunto de palabras comunes. El valor predeterminado es una lista vacía. Necesario. ignoreCase (tipo: booleano): si es true, la coincidencia no distingue entre mayúsculas y minúsculas. El valor predeterminado es false. queryMode (tipo: booleano): genera bigramas y luego elimina las palabras comunes y los términos individuales cuando están seguidos por una palabra común. El valor predeterminado es false. |
| dictionary_decompounder | DictionaryDecompounderTokenFilter | Descompone las palabras compuestas que se encuentran en muchas lenguas germánicas. Opciones wordList (tipo: matriz de cadenas): la lista de palabras que se van a comparar. El valor predeterminado es una lista vacía. Obligatorio minWordSize (tipo: entero): solo se procesarán las palabras más largas que este valor. El valor predeterminado es 5. minSubwordSize (tipo: entero): solo se obtendrán las subpalabras más largas que este valor. El valor predeterminado es 2. maxSubwordSize (tipo: entero): solo se obtendrán las subpalabras más cortas que este valor. El valor predeterminado es 15. onlyLongestMatch (tipo: booleano): agregue solamente la subpalabra coincidente más larga a la salida. El valor predeterminado es false. |
| edgeNGram_v2 | EdgeNGramTokenFilterV2 | Genera n-gramas de los tamaños especificados comenzando desde el principio o el final de un token de entrada. Opciones minGram (tipo: entero): Valor predeterminado: 1, máximo: 300. maxGram (tipo: entero): Valor predeterminado: 2, máximo: 300. El valor debe ser mayor que minGram. side (tipo: cadena): especifica de qué lado de la entrada se debe generar el n-grama. Valores permitidos: front, back |
| elision | ElisionTokenFilter | Elimina elisiones. Por ejemplo, l'avion (el avión) se convierte en avion (avión).Opciones articles (tipo: matriz de cadenas): un conjunto de artículos para quitar. El valor predeterminado es una lista vacía. Si no hay ninguna lista de artículos establecida, se quitan todos los artículos en francés de forma predeterminada. |
| normalización_alemana | (el tipo solo se aplica cuando las opciones están disponibles) | Normaliza los caracteres de alemán según la heurística del algoritmo de bola de nieve German2 . |
| hindi_normalization | (el tipo solo se aplica cuando las opciones están disponibles) | Normaliza el texto en hindi para quitar algunas diferencias en las variaciones ortográficas. |
| indic_normalization | IndicNormalizationTokenFilter | Normaliza la representación Unicode de texto en las lenguas hindúes. |
| keep | KeepTokenFilter | Filtro de token que solo mantiene los tokens con el texto contenido en la lista especificada de palabras. Opciones keepWords (tipo: matriz de cadenas): una lista de palabras para mantener. El valor predeterminado es una lista vacía. Obligatorio keepWordsCase (tipo: bool): si es true, primero se ponen en minúsculas todas las palabras. El valor predeterminado es false. |
| keyword_marker | KeywordMarkerTokenFilter | Marca los términos como palabras clave. Opciones keywords (tipo: matriz de cadenas): una lista de palabras para marcar como palabras clave. El valor predeterminado es una lista vacía. Obligatorio ignoreCase (tipo: booleano): si es true, primero se ponen en minúsculas todas las palabras. El valor predeterminado es false. |
| keyword_repeat | (el tipo solo se aplica cuando las opciones están disponibles) | Emite cada token de entrada dos veces, una vez como palabra clave y otra como no palabra clave. |
| kstem | (el tipo solo se aplica cuando las opciones están disponibles) | Un filtro kstem de alto rendimiento para inglés. |
| largura | FiltroDeTokenPorLongitud | Quita las palabras que son demasiado largas o demasiado cortas. Opciones min (tipo: entero): el número mínimo. Valor predeterminado: 0, máximo: 300. max (tipo: entero): el número máximo. Valor predeterminado: 300, máximo: 300. |
| límite | Microsoft.Azure.Search.LimitTokenFilter | Limita el número de tokens durante la indexación. Opciones maxTokenCount (tipo: int): número máximo de tokens para producir. El valor predeterminado es 1. consumeAllTokens (tipo: booleano): indica si se deben consumir todos los tokens de la entrada incluso si se alcanza maxTokenCount. El valor predeterminado es false. |
| lowercase | (el tipo solo se aplica cuando las opciones están disponibles) | Normaliza el texto de los tokens a minúsculas. |
| nGram_v2 | NGramTokenFilterV2 | Genera n-gramas de los tamaños especificados. Opciones minGram (tipo: entero): Valor predeterminado: 1, máximo: 300. maxGram (tipo: entero): Valor predeterminado: 2, máximo: 300. El valor debe ser mayor que minGram. |
| captura_de_patrones | PatternCaptureTokenFilter | Usa expresiones regulares de Java para generar varios tokens, uno para cada grupo de captura en uno o varios patrones. Opciones patterns (tipo: matriz de cadenas): una lista de patrones para comparar con cada token. Obligatorio preserveOriginal (tipo: booleano): establézcalo en true para devolver el token original incluso si uno de los patrones coincide; valor predeterminado: true. |
| pattern_replace | PatternReplaceTokenFilter | Un filtro de token que aplica un patrón a cada token de la secuencia, reemplazando las coincidencias por la cadena de reemplazo especificada. Opciones pattern (tipo: cadena) - Requerido. replacement (tipo: cadena): necesario. |
| persian_normalization | (el tipo solo se aplica cuando las opciones están disponibles) | Aplica la normalización para el idioma persa. |
| phonetic | PhoneticTokenFilter | Crea tokens para coincidencias fonéticas. Opciones encoder (tipo: cadena de texto): codificador fonético que debe utilizarse. Los valores permitidos son metaphone, doubleMetaphone, soundex, refinedSoundex, caverphone1, caverphone2, cologne, nysiis, koelnerPhonetik, haasePhonetik y beiderMorse. Predeterminado: metaphone. El valor predeterminado es metaphone.Vea el codificador para más información. replace (tipo: bool): true si los tokens codificados deben reemplazar a los tokens originales; false si se deben agregar como sinónimos. El valor predeterminado es true. |
| porter_stem | (el tipo solo se aplica cuando las opciones están disponibles) | Transforma la secuencia de tokens según el algoritmo de derivación de Porter. |
| reverse | (el tipo solo se aplica cuando las opciones están disponibles) | Invierte la cadena de tokens. |
| normalización escandinava | (el tipo solo se aplica cuando las opciones están disponibles) | Normaliza el uso de los caracteres escandinavos intercambiables entre sí. |
| scandinavian_folding | (el tipo solo se aplica cuando las opciones están disponibles) | Dobla los caracteres escandinavos åÅäæÄÆ en a y öÖøØ en o. También discrimina el uso de las vocales dobles aa, ae, ao, oe y oo, dejando solo la primera de ellas. |
| shingle | ShingleTokenFilter | Crea combinaciones de tokens como un solo token. Opciones maxShingleSize (tipo: entero): el valor predeterminado es 2. minShingleSize (tipo: entero): el valor predeterminado es 2. outputUnigrams (tipo: booleano): si es verdadero, la secuencia de salida contiene los tokens de entrada (unigramas), así como los conglomerados de palabras. El valor predeterminado es true. outputUnigramsIfNoShingles (tipo: booleano): Si es verdadero, anula el comportamiento de outputUnigrams==false para aquellas ocasiones en las que no hay fragmentos disponibles. El valor predeterminado es false. tokenSeparator (tipo: cadena): La cadena que se usará al unir los tokens adyacentes para formar un shingle. El valor predeterminado es un solo espacio vacío . filterToken (tipo: cadena): cadena que se va a insertar para cada posición para la que no hay ningún token. El valor predeterminado es _. |
| bola de nieve | SnowballTokenFilter | Filtro de tokens Snowball. Opciones language (tipo: cadena): entre los valores permitidos se incluyen: armenian, basque, catalan, danish, dutch, english, finnish, french, german, german2, hungarian, italian, kp, lovins, norwegian, porter, portuguese, romanian, russian, spanish, swedish y turkish |
| sorani_normalization | SoraniNormalizationTokenFilter | Normaliza la representación Unicode de Sorani del texto.Opciones Ninguno. |
| stemmer | AlgoritmoDeDerivaciónTokenFilter | Filtro de lematización específico del idioma. Opciones language (tipo: cadena): los valores permitidos son: - 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 | Los términos lematizados según el diccionario se marcan como palabras clave, lo que evita la lematización de la cadena. Se debe colocar antes de los filtros de lematización. Opciones rules (tipo: matriz de cadenas): reglas de derivación con el formato word => stem, por ejemplo, ran => run. El valor predeterminado es una lista vacía. Obligatorio |
| stopwords | StopwordsTokenFilter | Quita las palabras irrelevantes de una secuencia de tokens. De forma predeterminada, el filtro utiliza una lista de palabras de parada predefinidas para inglés. Opciones stopwords (tipo: matriz de cadenas): una lista de palabras irrelevantes. No se puede especificar si se especifica "stopwordsList". stopwordsList (tipo: cadena): una lista predeterminada de palabras de parada. No se puede especificar si stopwords ya está especificado. Entre los valores permitidos se incluyen: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, valor predeterminado: english. No se puede especificar stopwords ya que ya está especificado. ignoreCase (tipo: booleano): si es true, primero se ponen en minúsculas todas las palabras. El valor predeterminado es false. removeTrailing (tipo: booleano): si es true, se omite el último término de búsqueda si es una palabra irrelevante. El valor predeterminado es true. |
| Sinónimo | SynonymTokenFilter | Hace coincidir sinónimos de una o varias palabras en una secuencia de tokens. Opciones synonyms (tipo: matriz de cadenas): requerido. Lista de sinónimos en uno de los dos formatos siguientes: -increíble, increíble, fabuloso => asombroso: todos los términos que se encuentran en el lado izquierdo del símbolo => se reemplazan por todos los términos que se encuentran en su lado derecho. -increíble, asombroso, fabuloso, impresionante: una lista de palabras equivalentes separadas por comas. Establezca la opción de expansión para cambiar cómo se interpreta esta lista. ignoreCase (tipo: booleano): entradas de pliegues de mayúsculas y minúsculas para coincidencia. El valor predeterminado es false. expand (tipo: bool): si es true, todas las palabras de la lista de sinónimos (si => notación no se usa) se asignan entre sí. La lista "increíble, asombroso, fabuloso, impresionante" equivale a "increíble, asombroso, fabuloso, impresionante => increíble, asombroso, fabuloso, impresionante". - Si es falso, la lista "increíble, increíble, fabuloso, increíble" equivale a "increíble, increíble, fabuloso, increíble => increíble". |
| trim | (el tipo solo se aplica cuando las opciones están disponibles) | Elimina el espacio en blanco inicial y final de los tokens. |
| truncate | TruncateTokenFilter | Trunca los términos en una longitud específica. Opciones length (tipo: entero): Valor predeterminado: 300, valor máximo: 300. Obligatorio |
| único | UniqueTokenFilter | Filtra los tokens con el mismo texto que el token anterior. Opciones onlyOnSamePosition (tipo: booleano): si está activado, elimina duplicados solo en la misma posición. El valor predeterminado es true. |
| uppercase | (el tipo solo se aplica cuando las opciones están disponibles) | Normaliza el texto del token a letras mayúsculas. |
| word_delimiter | WordDelimiterTokenFilter | Divide palabras en subpalabras y realiza transformaciones opcionales en los grupos de subpalabras. Opciones generateWordParts (tipo: booleano): hace que se generen partes de palabras, por ejemplo, AzureSearch se convierte en AzureSearch. El valor predeterminado es true.generateNumberParts (tipo: bool): crea el número de subpalabras que se van a generar. El valor predeterminado es true. catenateWords (tipo: booleano): hace que se concatenen las máximas series de partes de palabras, por ejemplo, Azure-Search se convierte en AzureSearch. El valor predeterminado es false.catenateNumbers (tipo: booleano): provoca que las máximas secuencias de partes numéricas se concatenen; por ejemplo, 1-2 se convierte en 12. El valor predeterminado es false.catenateAll (tipo: booleano): hace que se concatenen todas las partes de subpalabras, por ejemplo, Azure-Search-1 se convierte en AzureSearch1. El valor predeterminado es false.splitOnCaseChange (tipo: booleano): si es true, divide las palabras según caseChange, por ejemplo, AzureSearch se convierte en AzureSearch. El valor predeterminado es true.preserveOriginal: crea palabras originales que se van a conservar y a agregar a la lista de subpalabras. El valor predeterminado es false. splitOnNumerics (tipo: booleano): si es true, divide según los números, por ejemplo, Azure1Search se convierte en Azure1Search. El valor predeterminado es true.stemEnglishPossessive (tipo: bool) - Hace que las 's finales se eliminen en cada subpalabra. El valor predeterminado es true.protectedWords (tipo: matriz de cadenas): tokens para impedir la delimitación. El valor predeterminado es una lista vacía. |
1 Los tipos de filtro de token siempre van precedidos en el código por #Microsoft.Azure.Search de modo que ArabicNormalizationTokenFilter se especificaría realmente como #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Hemos quitado el prefijo para reducir el ancho de la tabla, pero no olvide incluirlo en el código.