Buscar documentos (API REST de versión preliminar)
se aplica a: 2023-07-01-Preview. Esta versión ya no se admite. Actualizar inmediatamente a una versión más reciente.
Importante
2023-07-01-Preview agrega:
- "vectores" parámetro de consulta que especifica cualquier solicitud de consulta vectorial. Cada objeto debe contener la representación vectorial de la consulta, el número "k" de vecinos más cercanos que se van a devolver en los resultados y los campos vectoriales que se van a usar durante la ejecución de la consulta.
2021-04-30-Preview agrega:
- "semanticConfiguration" admite la clasificación semántica de ámbito a campos específicos.
- "subtítulos" devuelve frases extraídas de los pasajes clave de los documentos con clasificación semántica más alta.
2020-06-30-Preview agrega:
- "queryType=semantic" admite el reranking semántico y las respuestas.
- "searchFields" en una consulta semántica establece el orden de prioridad de los campos que se usan para formular subtítulos y respuestas. Este enfoque se reemplazó por "semanticConfiguration" en 2021-04-30-Preview y ahora está obsoleto.
- "corrector ortográfico" habilita la corrección ortográfica en la entrada de consulta.
- "queryLanguage" es necesario para "queryType=semantic" y "speller".
- "featuresMode" desempaqueta una puntuación de búsqueda, informando sobre la frecuencia del término por campo, la puntuación de similitud por campo y el número de coincidencias únicas por campo.
Una solicitud de consulta tiene como destino la colección de documentos de un único índice en un servicio de búsqueda. Incluye parámetros que definen los criterios de coincidencia y los parámetros que dan forma a la respuesta. También puede usar un alias de índice para dirigirse a un índice determinado en lugar de usar el propio nombre del índice.
Puede usar GET o POST para la mayoría de las consultas, pero debe usar POST para la búsqueda vectorial porque los parámetros de consulta vectorial no caben en un URI. parámetros query se especifican en la cadena de consulta para las solicitudes GET y en el cuerpo de la solicitud para las solicitudes POST.
GET https://[service name].search.windows.net/indexes/[index name]/docs?[query parameters]
Content-Type: application/json
api-key: [admin or query key]
Si usa POST, agregue la acción "buscar" como parámetro URI.
POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=[api-version]
Content-Type: application/json
api-key: [admin or query key]
Cuando se llama con GET, la longitud de la dirección URL de la solicitud no puede superar los 8 KB. Esta longitud es suficiente para la mayoría de las aplicaciones. Sin embargo, algunas aplicaciones producen consultas de gran tamaño, específicamente cuando se usan expresiones de filtro de OData. Para estas aplicaciones, HTTP POST es una mejor opción porque permite filtros más grandes que GET.
Con POST, el número de cláusulas de un filtro es el factor de limitación, no el tamaño de la cadena de filtro sin procesar, ya que el límite de tamaño de solicitud para POST es de aproximadamente 16 MB. Aunque el límite de tamaño de la solicitud POST es grande, las expresiones de filtro no pueden ser arbitrariamente complejas. Para más información sobre las limitaciones de complejidad del filtro, consulte sintaxis de expresiones de OData para Azure AI Search.
Parámetros de URI
Parámetro | Descripción |
---|---|
nombre del servicio | Obligatorio. Establezca este nombre en el nombre único definido por el usuario del servicio de búsqueda. |
nombre de índice/docs | Obligatorio. Especifica la colección de documentos de un índice con nombre. El nombre de un alias de índice también se puede usar en lugar del nombre del índice. |
parámetros de consulta | Los parámetros de consulta se especifican en el URI de las solicitudes GET y en el cuerpo de la solicitud para las solicitudes POST. |
api-version | Obligatorio. Consulte versiones de API para obtener más versiones. |
Recomendaciones de codificación url
Recuerde codificación url parámetros de consulta específicos al llamar directamente a la API REST GET. Para una operación de Buscar documentos, es posible que sea necesario codificar direcciones URL para los parámetros de consulta siguientes:
- buscar
- $filter
- faceta
- highlightPreTag
- highlightPostTag
La codificación de direcciones URL solo se recomienda para parámetros individuales. Si codifica accidentalmente la cadena de consulta completa (todo después del ?
), las solicitudes se interrumpirán.
Además, la codificación de direcciones URL solo es necesaria al llamar a la API REST directamente mediante GET. No es necesario codificar direcciones URL al usar POST o cuando se usa la biblioteca cliente de .NET de Azure AI Search
Encabezados de solicitud
En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales.
Campos | Descripción |
---|---|
Tipo de contenido | Obligatorio. Establezca este valor en "application/json" |
api-key | Opcional si usa roles de Azure y se proporciona un token de portador en la solicitud; de lo contrario, se requiere una clave. Una clave de API es una cadena única generada por el sistema que autentica la solicitud en el servicio de búsqueda. Las solicitudes de consulta en la colección de documentos pueden especificar una clave de administrador o una clave de consulta como clave de API. La clave de consulta se usa para las operaciones de solo lectura en la colección de documentos. Consulte Conexión a Azure AI Search mediante la autenticación de claves para más información. |
Cuerpo de la solicitud
Para GET: None.
Para POST:
{
"answers": "none" (default) | "extractive",
"count": true | false (default),
"captions": "none" (default) | "extractive",
"facets": [ "facet_expression_1", "facet_expression_2", ... ],
"featuresMode" : "disabled" (default) | "enabled",
"filter": "odata_filter_expression",
"highlight": "highlight_field_1, highlight_field_2, ...",
"highlightPreTag": "pre_tag",
"highlightPostTag": "post_tag",
"minimumCoverage": # (% of index that must be covered to declare query successful; default 100),
"orderby": "orderby_expression",
"queryLanguage": "en-us" (default) | (a supported language code),
"queryType": "simple" (default) | "full" | "semantic",
"scoringParameters": [ "scoring_parameter_1", "scoring_parameter_2", ... ],
"scoringProfile": "scoring_profile_name",
"scoringStatistics" : "local" (default) | "global",
"search": "simple_query_expression",
"searchFields": "field_name_1, field_name_2, ...",
"searchMode": "any" (default) | "all",
"select": "field_name_1, field_name_2, ...",
"semanticConfiguration": "semantic_configuration_name",
"sessionId" : "session_id",
"skip": # (default 0),
"speller": "none" (default) | "lexicon",
"top": #,
"vectors": [
{
"value": "a vector representation of the query",
"k": an integer (number of nearest neighbors to return as top results),
"fields": "a comma-delimited list of vector fields to use in the query"
}
]
}
continuación de las respuestas de búsqueda parciales
A veces Azure AI Search no puede devolver todos los resultados solicitados en una única respuesta de búsqueda. Una respuesta parcial puede ocurrir por diferentes motivos, como cuando la consulta devuelve demasiados documentos sin especificar $top o especificando un valor para $ top que es demasiado grande. En tales casos, Azure AI Search incluye la anotación @odata.nextLink en el cuerpo de la respuesta y también @search.nextPageParameters si se trata de una solicitud POST. Puede usar los valores de estas anotaciones para formular otra solicitud de búsqueda para obtener la siguiente parte de la respuesta de búsqueda. Este comportamiento se denomina continuación de la solicitud de búsqueda original y las anotaciones se denominan tokens de continuación . Consulte el ejemplo de la sección Respuesta para obtener más información sobre la sintaxis de estas anotaciones y dónde aparecen en el cuerpo de la respuesta.
Las razones por las que Azure AI Search podría devolver tokens de continuación son específicos de la implementación y están sujetos a cambios. Los clientes sólidos siempre deben estar listos para controlar los casos en los que se devuelven menos documentos de los esperados y se incluye un token de continuación para continuar recuperando documentos. Tenga en cuenta también que debe usar el mismo método HTTP que la solicitud original para continuar. Por ejemplo, si envió una solicitud GET, las solicitudes de continuación que envíe también deben usar GET (y del mismo modo para POST).
Nota
El propósito de @odata.nextLink y @search.nextPageParameters es proteger el servicio de las consultas que solicitan demasiados resultados, no proporcionar un mecanismo general para la paginación. Si desea paginar los resultados, use $top y $skip juntos. Por ejemplo, si desea páginas de tamaño 10, la primera solicitud debe tener $top=10 y $skip=0, la segunda solicitud debe tener $top=10 y $skip=10, la tercera solicitud debe tener $top=10 y $skip=20, etc.
Parámetros de consulta
Una consulta acepta varios parámetros en la dirección URL cuando se llama con GET y como propiedades JSON en el cuerpo de la solicitud cuando se llama a con POST. La sintaxis de algunos parámetros es ligeramente diferente entre GET y POST. Estas diferencias se indican en la tabla siguiente.
Nombre | Tipo | Descripción |
---|---|---|
respuestas (versión preliminar) | cuerda | Opcional. Los valores válidos son "none" y "extractive". El valor predeterminado es "none". Este parámetro solo es válido si el tipo de consulta es "semántico". Cuando se establece en "extractive", la consulta formula y devuelve respuestas de los pasajes clave de los documentos con clasificación semántica más alta. El valor predeterminado es una respuesta, pero puede especificar hasta 10 agregando un recuento. Por ejemplo, "answers": "extractive|count-3" devuelve tres respuestas. Para que se devuelva una respuesta, debe haber contenido textual en el campo de destino que parezca una respuesta. Los modelos de lenguaje que se usan para las respuestas se entrenan para reconocer las respuestas, no generarlas. Además, la propia consulta debe tener un aspecto similar a una pregunta. |
api-version | cuerda | Obligatorio. Versión de la API REST que se usa para la solicitud. Para obtener una lista de las versiones admitidas, consulte versiones de API. Para esta operación, la versión de api se especifica como un parámetro URI, independientemente de si llama a Buscar documentos con GET o POST. |
captions (versión preliminar) | cuerda | Opcional. Los valores válidos son "none" y "extractive". El valor predeterminado es "none". Este parámetro solo es válido si el tipo de consulta es "semántico". Cuando se establece en "extractive", la consulta devuelve los títulos extraídos de los pasajes clave de los documentos clasificados más altos. Cuando los títulos se establecen en 'extractive', el resaltado está habilitado de forma predeterminada y se puede configurar anexando el carácter de canalización '|' seguido de la opción "highlight-<true/false>", como "extractive|highlight-true". |
$count | booleano | Opcional. Los valores válidos son "true" o "false". El valor predeterminado es "false". Cuando se llama a con POST, este parámetro se denomina count en lugar de $count. Especifica si se va a capturar el recuento total de resultados. Este valor es el recuento de todos los documentos que coinciden con los parámetros de búsqueda y $filter, ignorando $top y $skip. Establecer este valor en "true" puede degradar el rendimiento. El recuento es preciso si el índice es estable, pero informará en exceso de los documentos que se agregan, actualizan o eliminan activamente. Si desea obtener solo el recuento sin ningún documento, puede usar $top=0. |
facetas o facetas | cuerda | Opcional. Campo por el que se va a facetar, donde el campo se atribuye como "facetable". Cuando se llama a con GET, facet es un campo (facet: field1 ). Cuando se llama a con POST, este parámetro se denomina facets en lugar de facet y se especifica como una matriz (facets: [field1, field2, field3] ). La cadena puede contener parámetros para personalizar la faceta, expresada como pares de nombre-valor separados por comas.
Los valores válidos son "count", "sort", "values", "interval" y "timeoffset". "count" es el número máximo de términos de faceta; el valor predeterminado es 10. No hay ningún límite superior en el número de términos, pero los valores más altos degradan el rendimiento, especialmente si el campo con facetas contiene un gran número de términos únicos. Por ejemplo, "facet=category,count:5" obtiene las cinco categorías principales en los resultados de facetas. Si el parámetro count es menor que el número de términos únicos, es posible que los resultados no sean precisos. Esto se debe a la forma en que las consultas de faceta se distribuyen entre particiones. Para obtener un recuento preciso en todas las particiones, puede establecer el recuento en cero o en un valor mayor o igual que el número de valores únicos en el campo facetable. El inconveniente es una mayor latencia. "sort" se puede establecer en "count", "-count", "value", "-value". Use count para ordenar de forma descendente por recuento. Use -count para ordenar ascendente por recuento. Use el valor para ordenar ascendente por valor. Use -value para ordenar de forma descendente por valor (por ejemplo, "facet=category,count:3,sort:count" obtiene las tres categorías principales en los resultados de faceta en orden descendente por el número de documentos con cada nombre de ciudad). Si las tres categorías principales son Budget, Motel y Luxury, y Budget tiene cinco visitas, Motel tiene seis y Luxury tiene cuatro, entonces los cubos están en el orden Motel, Budget, Luxury. Para -value, "facet=rating,sort:-value" genera depósitos para todas las clasificaciones posibles, en orden descendente por valor (por ejemplo, si las clasificaciones van de 1 a 5, los cubos se ordenan 5, 4, 3, 2, 1, independientemente del número de documentos que coincidan con cada clasificación). "values" puede establecerse en valores numéricos delimitados por canalización o Edm.DateTimeOffset que especifican un conjunto dinámico de valores de entrada de faceta (por ejemplo, "facet=baseRate,values:10 | 20" produce tres cubos: uno para la tasa base 0 hasta pero no incluye 10, uno para 10 hasta pero no incluido 20, y otro para 20 y superior). Una cadena "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" produce dos depósitos: uno para hoteles renovados antes de febrero de 2010 y otro para hoteles renovados el 1 de febrero de 2010 o posterior. Los valores deben aparecer en orden secuencial y ascendente para obtener los resultados esperados. "interval" es un intervalo entero mayor que 0 para números, o minutos, hora, día, semana, mes, trimestre, año para los valores de fecha y hora. Por ejemplo, "facet=baseRate,interval:100" genera depósitos basados en intervalos de velocidad base de tamaño 100. Si las tarifas base están entre $60 y $600, habrá depósitos para 0-100, 100-200, 200-300, 300-400, 400-500 y 500-600. La cadena "facet=lastRenovationDate,interval:year" genera un cubo para cada año cuando se renovaron los hoteles. "timeoffset" se puede establecer en ([+-]hh:mm, [+-]hhmm o [+-]hh). Si se usa, el parámetro timeoffset debe combinarse con la opción interval y solo cuando se aplica a un campo de tipo Edm.DateTimeOffset. El valor especifica el desplazamiento de hora UTC para el que se debe tener en cuenta en el establecimiento de límites de tiempo. Por ejemplo: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" usa el límite del día que comienza a las 01:00:00 UTC (medianoche en la zona horaria de destino). recuento y ordenación se pueden combinar en la misma especificación de faceta, pero no se pueden combinar con el intervalo o los valores, y los valores y intervalo no se pueden combinar. facetas Intervalo en fecha y hora se calculan en función de la hora UTC si no se especifica el desplazamiento de hora. Por ejemplo: para "facet=lastRenovationDate,interval:day", el límite del día comienza a las 00:00:00 UTC. |
featuresMode (versión preliminar) | booleano | Opcional. Los valores válidos son "enabled" y "disabled". El valor predeterminado es "disabled". Valor que especifica si los resultados deben incluir características de resultados de consulta, que se usan para calcular la puntuación de relevancia de un documento en relación con la consulta, como por similitud de campo. Use "habilitado" para exponer más características de resultados de consulta: por puntuación de similitud de campo, frecuencia de término de campo y número de campo de tokens únicos coincidentes. Para obtener más información, consulte similitud y puntuación. |
$filter | cuerda | Opcional. Expresión de búsqueda estructurada en la sintaxis estándar de OData. Solo se pueden usar campos filtrables en un filtro. Cuando se llama a con POST, este parámetro se denomina filtro en lugar de $filter. Consulte sintaxis de expresiones de OData para azure AI Search para más información sobre el subconjunto de la gramática de expresiones de OData que admite Azure AI Search. |
destacar | cuerda | Opcional. Conjunto de nombres de campo separados por comas usados para los resaltados de aciertos. Solo se pueden usar campos que se pueden buscar para el resaltado de aciertos. De forma predeterminada, Azure AI Search devuelve hasta cinco resaltados por campo. El límite se puede configurar por campo anexando "-<número máximo de resaltados>" siguiendo el nombre del campo. Por ejemplo, "highlight=title-3,description-10" devuelve hasta tres aciertos resaltados del campo de título y hasta 10 visitas del campo de descripción. El número máximo de resaltados debe ser un entero entre 1 y 1000 inclusive. |
highlightPostTag | cuerda | Opcional. El valor predeterminado es "</em>" . Etiqueta de cadena que se anexa al término resaltado. Debe establecerse con highlightPreTag. Los caracteres reservados en la dirección URL deben estar codificados por porcentaje (por ejemplo, %23 en lugar de #). |
highlightPreTag | cuerda | Opcional. El valor predeterminado es "</em>" . Etiqueta de cadena que antepone al término resaltado. Debe establecerse con highlightPostTag. Los caracteres reservados en la dirección URL deben estar codificados por porcentaje (por ejemplo, %23 en lugar de #). |
minimumCoverage | entero | Opcional. Los valores válidos son un número comprendido entre 0 y 100, que indica el porcentaje del índice que debe estar disponible para atender la consulta antes de que se pueda notificar como correcto. El valor predeterminado es "100".
una cobertura cien por ciento significa que todas las particiones respondieron a la solicitud (ni los problemas de mantenimiento ni las actividades de mantenimiento reducen la cobertura). En la configuración predeterminada, la cobertura total devuelve el código de estado HTTP 503. reducir minimumCoverage puede ser útil si se producen errores 503 y desea aumentar la probabilidad de que la consulta se realice correctamente, especialmente para los servicios configurados para una réplica. Si establece minimumCoverage y Search se realiza correctamente, devuelve HTTP 200 e incluye un valor @search.coverage en la respuesta que indica el porcentaje del índice que se incluyó en la consulta. En este escenario, no se garantiza que todos los documentos coincidentes estén presentes en los resultados de la búsqueda, pero si la disponibilidad de la búsqueda es más importante que la recuperación, la reducción de la cobertura puede ser una estrategia de mitigación viable. |
$orderby | cuerda | Opcional. Lista de expresiones separadas por comas por las que ordenar los resultados. Cuando se llama a con POST, este parámetro se denomina orderby en lugar de $orderby. Cada expresión puede ser un nombre de campo o una llamada a la función geo.distance(). Cada expresión puede ir seguida de "asc" para indicar ascendente y "desc" para indicar descendente. Si hay valores NULL en el campo de ordenación, los valores NULL aparecen primero en orden ascendente y último en orden descendente. El valor predeterminado es orden ascendente. Los empates se romperán con las puntuaciones de coincidencia de documentos. Si no se especifica ningún $orderby, el criterio de ordenación predeterminado es descendente por puntuación de coincidencia de documento. Hay un límite de 32 cláusulas para $orderby. |
queryLanguage (versión preliminar) | cuerda | Opcional. Los valores válidos son un idioma admitido . El valor predeterminado es "en-us". Este parámetro debe establecerse si usa speller=lexicon o queryType=semantic. El lenguaje especificado en queryLanguage se usa tanto para la revisión ortográfica como para los modelos semánticos que vuelven a bifurcar los resultados y extraen un título o una respuesta. Las bibliotecas usadas para queryLanguage son independientes de otros atributos de campo basados en configuración regional, como analizadores de lenguaje se usan para la indexación y la búsqueda de texto completo. |
queryType | cuerda | Opcional. Los valores válidos son "simple", "full" o "semantic" (versión preliminar). El valor predeterminado es "simple". Este valor se omite para la búsqueda vectorial, pero se aplica a la búsqueda de texto en escenarios híbridos.
"simple" interpreta las cadenas de consulta mediante la sintaxis de consulta simple que permite símbolos como + , * y "" . Las consultas se evalúan en todos los campos que se pueden buscar (o campos indicados en searchFields) en cada documento de forma predeterminada.
"full" interpreta las cadenas de consulta mediante la sintaxis de consulta de Lucene completa que permite búsquedas ponderadas y específicas del campo. La búsqueda de intervalos en el lenguaje de consulta lucene no se admite en favor de $filter, lo que ofrece una funcionalidad similar. "semántica" mejora la precisión de los resultados de la búsqueda al cambiar el número de 50 coincidencias principales mediante un modelo de clasificación entrenado en el corpus de Bing para las consultas expresadas en lenguaje natural, en lugar de palabras clave. Si establece el tipo de consulta en semántica, también debe establecer queryLanguage y semanticConfiguration. Opcionalmente, puede establecer respuestas si desea devolver también las tres respuestas principales si la entrada de consulta se formula en lenguaje natural ("qué es un ...) y, opcionalmente, puede establecer subtítulos para extraer pasajes clave de los documentos clasificados más altos. |
scoringParameter | cuerda | Opcional. Indica los valores de cada parámetro definido en una función de puntuación (como referencePointParameter) con el formato "name-value1,value2,..." Cuando se llama con POST, este parámetro se denomina scoringParameters en lugar de scoringParameter. Además, se especifica como una matriz JSON de cadenas donde cada cadena es un par de valores de nombre independientes.
Para los perfiles de puntuación que incluyen una función, separe la función de su lista de entrada con un carácter de - . Por ejemplo, una función denominada "mylocation" sería "&scoringParameter=mylocation--122.2,44.8". El primer guión separa el nombre de la función de la lista de valores, mientras que el segundo guión forma parte del primer valor (longitud en este ejemplo).
Para los parámetros de puntuación, como para la potenciación de etiquetas que pueden contener comas, puede escapar cualquier valor de este tipo en la lista mediante comillas simples. Si los propios valores contienen comillas simples, puede escaparlos duplicando. Supongamos que tiene un parámetro de aumento de etiquetas denominado "mytag" y desea aumentar los valores de etiqueta "Hello, O'Brien" y "Smith", la opción de cadena de consulta sería "&scoringParameter=mytag-'Hello, O'Brien',Smith". Las comillas solo son necesarias para los valores que contienen comas. |
scoringProfile | cuerda | Opcional. Nombre de un perfil de puntuación para evaluar las puntuaciones de coincidencia para los documentos coincidentes con el fin de ordenar los resultados. |
scoringStatistics | cuerda | Opcional. Los valores válidos son "local" o "global". El valor predeterminado es "local". Especifique si se deben calcular las estadísticas de puntuación, como la frecuencia del documento, globalmente (en todas las particiones) para obtener una puntuación más coherente o localmente (en la partición actual) para una menor latencia. Consulte estadísticas de puntuación en Azure AI Search. Las estadísticas de puntuación siempre se calcularán localmente para los términos que usan búsqueda aproximada ("~"). |
buscar | cuerda | Opcional. Texto que se va a buscar. Este valor se omite para la búsqueda vectorial, pero se aplica a la búsqueda de texto en escenarios híbridos. En las API REST, todos los campos que se pueden buscar de forma predeterminada, a menos que se especifique searchFields. En el índice, el texto de un campo que se puede buscar se tokeniza, por lo que se pueden separar varios términos por espacio en blanco (por ejemplo: 'search=hello world'). Para que coincida con cualquier término, use * (esto puede ser útil para las consultas de filtro booleano). Omitir este parámetro tiene el mismo efecto que establecerlo en * . Consulte sintaxis de consulta simple para obtener información específica sobre la sintaxis de búsqueda.
Resultados a veces puede ser sorprendente al consultar campos que se pueden buscar. El tokenizador incluye lógica para controlar casos comunes al texto en inglés, como apóstrofos, comas en números, etc. Por ejemplo, 'search=123,456' coincidirá con un solo término '123,456' en lugar de los términos individuales '123' y '456', ya que las comas se usan como separadores de miles para números grandes en inglés. Por este motivo, se recomienda usar espacios en blanco en lugar de signos de puntuación para separar los términos del parámetro de búsqueda. |
searchMode | cuerda | Opcional. Los valores válidos son "any" o "all" Defaults to "any". Especifica si alguno o todos los términos de búsqueda deben coincidir para contar el documento como una coincidencia. |
searchFields | cuerda | Opcional. Lista de nombres de campo separados por comas para buscar el texto especificado. Los campos de destino deben marcarse como buscables en el esquema de índice y deben ser de tipo Edm.String , Edm.ComplexType o Collection(Edm.String) . |
$select | cuerda | Opcional. Lista de campos separados por comas que se van a incluir en el conjunto de resultados. Solo los campos marcados como recuperables se pueden incluir en esta cláusula. Si no se especifica o establece en * , todos los campos marcados como recuperables en el esquema se incluyen en la proyección. Cuando se llama con POST, este parámetro se denomina select en lugar de $select. |
semanticConfiguration (versión preliminar) | cuerda | Opcional. Obligatorio si queryType="semantic". Nombre de la configuración semántica que enumera los campos que se deben usar para la clasificación semántica, los títulos, los resaltados y las respuestas. Para obtener más información, vea Crear una consulta semántica. |
sessionId | cuerda | Opcional. El uso de sessionId ayuda a mejorar la coherencia de la puntuación de relevancia para los servicios de búsqueda con varias réplicas. En las configuraciones de varias réplicas, puede haber pequeñas diferencias entre las puntuaciones de relevancia de los documentos individuales para la misma consulta. Cuando se proporciona un identificador de sesión, el servicio realiza un mejor esfuerzo para enrutar una solicitud determinada a la misma réplica para esa sesión. Tenga cuidado de que reutilizar los mismos valores de identificador de sesión repetidamente puede interferir con el equilibrio de carga de las solicitudes en las réplicas y afectar negativamente al rendimiento del servicio de búsqueda. El valor usado como sessionId no puede empezar con un carácter '_'. Si un servicio no tiene réplicas, este parámetro no tiene ningún efecto en la coherencia de rendimiento o puntuación. |
$skip | entero | Opcional. Número de resultados de búsqueda que se van a omitir. Cuando se llama con POST, este parámetro se denomina skip en lugar de $skip. Este valor no puede ser mayor que 100 000. Si necesita examinar documentos en secuencia, pero no puede usar $skip debido a esta limitación, considere la posibilidad de usar $orderby en un campo que tenga valores únicos para cada documento del índice (como la clave de documento, por ejemplo) y $filter con una consulta de intervalo en su lugar. |
corrector ortográfico (versión preliminar) | Cuerda | Opcional. Los valores válidos son "none" y "léxico". El valor predeterminado es "none". Mejore la recuperación mediante la corrección ortográfica de los términos de consulta de búsqueda individuales. Puede usarlo en tipos de consulta simples, completos y semánticos. Si se usa, el parámetro speller requiere queryLanguage. Para obtener más información y ejemplos, vea Agregar revisión ortográfica a las consultas. |
$top | entero | Opcional. Número de resultados de búsqueda que se van a recuperar. Este valor predeterminado es 50. Cuando se llama a con POST, este parámetro se denomina top en lugar de $top. Si especifica un valor mayor que 1000 y hay más de 1000 resultados, solo se devolverán los primeros 1000 resultados, junto con un vínculo a la página siguiente de resultados (vea "@odata.nextLink" en el ejemplo siguiente).
Azure AI Search usa de paginación del lado servidor para evitar que las consultas recuperen demasiados documentos a la vez. El tamaño de página predeterminado es 50, mientras que el tamaño máximo de página es 1000. Esto significa que, de forma predeterminada, buscar documentos devuelve como máximo 50 resultados si no se especifica $top. Si hay más de 50 resultados, la respuesta incluye información para recuperar la página siguiente de como máximo 50 resultados (vea "@odata.nextLink" y "@search.nextPageParameters" en los Ejemplos a continuación. Del mismo modo, si especifica un valor mayor que 1000 para $top y hay más de 1000 resultados, solo se devuelven los primeros 1000 resultados, junto con información para recuperar la página siguiente de como máximo 1000 resultados. |
vectores (versión preliminar) | arreglo | Opcional. El tipo de objeto dentro de la matriz es una consulta vectorial. Parámetros de consulta para consultas vectoriales.
"value" es la representación vectorial de una consulta de búsqueda. Esta representación debe formarse externamente. Azure AI Search no crea incrustaciones. "k" es un entero que especifica el número de vecinos más cercanos que se van a devolver como visitas principales. El valor predeterminado es 50. El mínimo es 1 y el máximo es 10 000. "fields" es un nombre de campo de lista delimitado por comas que contiene datos vectoriales. Solo los campos de tipo Collection(Edm.Single) se pueden incluir en la lista "campos". |
Respuesta
Código de estado: 200 Ok se devuelve para obtener una respuesta correcta. Hay dos respuestas de ejemplo en este artículo, una para la búsqueda semántica y featuresMode.
Respuesta de ejemplo para la consulta semántica
En el primer ejemplo se muestra la respuesta completa del resultado más alto de la consulta semántica "cómo se forman las nubes".
"@search.answers" aparece cuando se especifica el parámetro answers y cuando la consulta y los campos de destino del índice contienen contenido que se puede reconocer como respuesta. Matriz @search.answers que tiene una clave, texto y resaltado. La puntuación es un indicador de la intensidad de la respuesta.
"value" es el cuerpo de la respuesta. El algoritmo de clasificación semántica asigna el @search.rerankerScore y se usa para clasificar los resultados (@search.score procede del algoritmo de similitud BM25, que se usa al puntuar los resultados iniciales). Los títulos incluyen texto sin formato y versiones resaltadas. Este ejemplo se creó mediante OCR y aptitudes de reconocimiento de entidades. Los campos para el contenido extraído y combinado se incluyen en la respuesta.
{
"@search.answers": [
{
"key": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQ1LnBkZg2",
"text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).",
"highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case), but not where it is<em> descending</em> (over the river).",
"score": 0.94639826
}
],
"value": [
{
"@search.score": 0.5479723,
"@search.rerankerScore": 1.0321671911515296,
"@search.captions": [
{
"text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
"highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
}
],
"content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
"metadata_storage_path": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQxLnBkZg2",
"people": [],
"locations": [
"Pacific Northwest",
"North America",
"Vancouver"
],
"merged_content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
"text": [],
"layoutText": []
}
]
}
Respuesta de ejemplo para featuresMode
En este ejemplo se muestra la salida "@search.features" de una consulta que incluye featuresMode.
{
"@odata.count": # (if $count=true was provided in the query),
"@search.coverage": # (if minimumCoverage was provided in the query),
"@search.facets": { (if faceting was specified in the query)
"facet_field": [
{
"value": facet_entry_value (for non-range facets),
"from": facet_entry_value (for range facets),
"to": facet_entry_value (for range facets),
"count": number_of_documents
}
],
...
},
"@search.nextPageParameters": { (request body to fetch the next page of results if not all results could be returned in this response and Search was called with POST)
"count": ... (value from request body if present),
"facets": ... (value from request body if present),
"featuresMode" : ... (value from request body if present),
"filter": ... (value from request body if present),
"highlight": ... (value from request body if present),
"highlightPreTag": ... (value from request body if present),
"highlightPostTag": ... (value from request body if present),
"minimumCoverage": ... (value from request body if present),
"orderby": ... (value from request body if present),
"scoringParameters": ... (value from request body if present),
"scoringProfile": ... (value from request body if present),
"scoringStatistics": ... (value from request body if present),
"search": ... (value from request body if present),
"searchFields": ... (value from request body if present),
"searchMode": ... (value from request body if present),
"select": ... (value from request body if present),
"sessionId" : ... (value from request body if present),
"skip": ... (page size plus value from request body if present),
"top": ... (value from request body if present minus page size),
},
"value": [
{
"@search.score": document_score (if a text query was provided),
"@search.highlights": {
field_name: [ subset of text, ... ],
...
},
"@search.features": {
"field_name": {
"uniqueTokenMatches": feature_score,
"similarityScore": feature_score,
"termFrequency": feature_score,
},
...
},
key_field_name: document_key,
field_name: field_value (retrievable fields or specified projection),
...
},
...
],
"@odata.nextLink": (URL to fetch the next page of results if not all results could be returned in this response; Applies to both GET and POST)
}
Ejemplos
Puede encontrar más ejemplos en sintaxis de expresiones de OData para Azure AI Search.
ejemplo de : de búsqueda simple
Busque documentos en el índice mediante la sintaxis de consulta simple. Esta consulta devuelve hoteles en los que los campos que se pueden buscar contienen los términos "comfort" y "location", pero no "motel":
Get /indexes/hotels/docs?search=comfort +location –motel&searchMode=all&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "comfort +location -motel",
"searchMode": "all"
}
Propina
El uso de searchMode=all
invalida el valor predeterminado de searchMode=any
, asegurándose de que -motel
significa "AND NOT" en lugar de "OR NOT". Sin searchMode=all
, obtiene "OR NOT" que se expande en lugar de restringir los resultados de búsqueda, y esto puede ser contra intuitivo para algunos usuarios.
ejemplo de : de búsqueda completa de Lucene
Busque documentos en el índice mediante la sintaxis de consulta de Lucene (consulte sintaxis de consulta de Lucene en Azure AI Search). Esta consulta devuelve hoteles donde el campo de categoría contiene el término "presupuesto" y todos los campos que se pueden buscar que contengan la frase "recientemente renovada". Los documentos que contienen la frase "recientemente renovado" se clasifican más alto como resultado del valor de aumento del término (3)
GET /indexes/hotels/docs?search=Category:budget AND \"recently renovated\"^3&searchMode=all&api-version=2021-04-30-Preview&querytype=full`
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "Category:budget AND \"recently renovated\"^3",
"queryType": "full",
"searchMode": "all"
}
ejemplo de : de búsqueda semántica
Invoque el modelo de clasificación semántica con respuestas, subtítulos y contenido resaltado. La respuesta de esta consulta se puede encontrar en la sección anterior.
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "how do clouds form",
"queryType": "semantic",
"semanticConfiguration": "my-semantic-config",
"queryLanguage": "en-us",
"answers": "extractive",
"captions": "extractive",
"count": "true"
}
ejemplo de : de búsqueda vectorial
Para un índice que tiene campos de tipo Collection(Edm.Single)
y una configuración de vector, puede especificar parámetros de consulta vectorial. Los parámetros de consulta vectorial incluyen los campos vectoriales que están dentro del ámbito de la consulta, el número "k" de visitas principales que se van a devolver y una representación vectorial de la entrada de consulta.
Agregar un parámetro "select" resulta útil si el índice incluye campos de texto. La coincidencia y la relevancia se basan en vectores, pero los campos que contienen contenido legible son más útiles para alguien que lee los resultados. Como alternativa, puede escribir código que convierta los datos vectoriales en los resultados de búsqueda en texto.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
"search": (this parameter is ignored in vector search),
"vectors": [{
"value": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "contentVector",
"k": 5
}],
"select": "title, content, category"
}
ejemplo de : orderby
Busque el índice y devuelva los resultados ordenados por fecha en orden descendente.
GET /indexes/hotels/docs?search=*&$orderby=LastRenovationDate desc&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"orderby": "LastRenovationDate desc"
}
ejemplo de : filtrar mediante una expresión de OData
Recuperar documentos que coincidan con una expresión de filtro específica:
GET /indexes/hotels/docs?$filter=(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"filter": "(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'"
}
ejemplo de : de búsqueda por facetas
En una búsqueda por facetas, busque el índice y recupere facetas para categorías, clasificaciones, etiquetas, así como elementos con baseRate en intervalos específicos.
GET /indexes/hotels/docs?search=*&facet=Category&facet=Rating&facet=Tags&facet=Rooms/BaseRate,values:80|150|220&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "test",
"facets": [ "Category", "Rating", "Tags", "Rooms/BaseRate,values:80|150|220" ]
}
Observe que la última faceta está en un subcampo. Las facetas cuentan el documento primario (Hoteles) y no los subdocumentos intermedios (Rooms), por lo que la respuesta determinará el número de hoteles que tienen habitaciones en cada cubo de precios.
ejemplo: restringir una consulta por facetas
Con un filtro, restrinja el resultado de la consulta por facetas anterior después de que el usuario seleccione Clasificación 3 y categoría "Motel".
GET /indexes/hotels/docs?search=*&facet=tags&facet=Rooms/BaseRate,values:80|150|220&$filter=Rating eq 3 and Category eq 'Motel'&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "test",
"facets": [ "tags", "Rooms/BaseRate,values:80|150|220" ],
"filter": "Rating eq 3 and Category eq 'Motel'"
}
Ejemplo: búsqueda por facetas con límites en cada categoría
En una búsqueda por facetas, establezca un límite superior en términos únicos devueltos en una consulta. El valor predeterminado es 10, pero puede aumentar o disminuir este valor mediante el parámetro count en el atributo de faceta. En este ejemplo se devuelven facetas para city, limitadas a 5.
GET /indexes/hotels/docs?search=*&facet=Address/City,count:5&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "test",
"facets": [ "Address/City,count:5" ]
}
ejemplo de : de búsqueda en el campo
Buscar el índice dentro de campos específicos (por ejemplo, un campo de idioma)
GET /indexes/hotels/docs?search=hôtel&searchFields=Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hôtel",
"searchFields": "Description_fr"
}
Busque el índice en varios campos. Por ejemplo, puede almacenar y consultar campos que se pueden buscar en varios idiomas, todos dentro del mismo índice. Si las descripciones en inglés y francés coexisten en el mismo documento, puede devolver cualquiera o todo en los resultados de la consulta:
GET /indexes/hotels/docs?search=hotel&searchFields=Description,Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hotel",
"searchFields": "Description, Description_fr"
}
Solo puede consultar un índice a la vez. No cree varios índices para cada idioma a menos que planee consultar uno a uno.
ejemplo de : de resultados de paginación
Obtener la primera página de elementos (el tamaño de página es 10):
GET /indexes/hotels/docs?search=*&$skip=0&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"skip": 0,
"top": 10
}
Obtenga la segunda página de elementos (el tamaño de página es 10):
GET /indexes/hotels/docs?search=*&$skip=10&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"skip": 10,
"top": 10
}
Ejemplo: limitar campos en un conjunto de resultados
Recupere un conjunto específico de campos:
GET /indexes/hotels/docs?search=*&$select=HotelName,Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "*",
"select": "HotelName, Description"
}
ejemplo de : resaltado de aciertos en los resultados
Busque el índice y devuelva fragmentos con resaltados de aciertos:
GET /indexes/hotels/docs?search=something&highlight=Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "something",
"highlight": "Description"
}
ejemplo de : de búsqueda geoespacial
Busque el índice y devuelva documentos ordenados de cerca a más lejos de una ubicación de referencia:
GET /indexes/hotels/docs?search=something&$orderby=geo.distance(Location, geography'POINT(-122.12315 47.88121)')&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "something",
"orderby": "geo.distance(Location, geography'POINT(-122.12315 47.88121)')"
}
Ejemplo: "buscar por mí" (aumentar la relevancia de las ubicaciones cercanas
Busque en el índice suponiendo que hay un perfil de puntuación denominado "geo" con dos funciones de puntuación de distancia, una que define un parámetro denominado "currentLocation" y otro que define un parámetro denominado "lastLocation". En el ejemplo siguiente, "currentLocation" tiene un delimitador de un solo guión (-
). Va seguido de coordenadas de longitud y latitud, donde longitud es un valor negativo.
GET /indexes/hotels/docs?search=something&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&scoringParameter=lastLocation--121.499,44.2113&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "something",
"scoringProfile": "geo",
"scoringParameters": [ "currentLocation--122.123,44.77233", "lastLocation--121.499,44.2113" ]
}
Ejemplo: consulta sobre índice completo en lugar de particiones
Busque documentos en el índice a la vez que favorece la puntuación coherente con respecto a la menor latencia. Esta consulta calcula las frecuencias de los documentos en todo el índice y realiza un mejor esfuerzo para dirigirse a la misma réplica para todas las consultas dentro de la misma "sesión", lo que ayuda a generar una clasificación estable y reproducible.
GET /indexes/hotels/docs?search=hotel&sessionId=mySessionId&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hotel",
"sessionId": "mySessionId",
"scoringStatistics" :"global"
}
ejemplo de : estadísticas de puntuación (featuresMode)
Busque documentos en el índice y devuelva una lista de características de recuperación de información para cada resultado que describa la puntuación entre el documento coincidente y la consulta. La consulta también calcula frecuencias de documento en todo el índice para generar una puntuación más coherente.
GET /indexes/hotels/docs?search=hotel&featuresMode=enabled&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
"search": "hotel",
"featuresMode": "enabled",
"scoringStatistics" :"global"
}
Un ejemplo de una respuesta que incluye search.features
tiene un aspecto similar al siguiente:
"@search.score": 0.91875637,
"@search.features": {
"Description": {
"uniqueTokenMatches": 1,
"similarityScore": 0.2917966,
"termFrequency": 2
},
"HotelName": {
"uniqueTokenMatches": 1,
"similarityScore": 0.44458693,
"termFrequency": 1
}
. . .
Definiciones
En esta sección se proporcionan detalles sobre los parámetros que son demasiado complejos para cubrir en la tabla principal.
Enlace | Descripción |
---|---|
queryLanguage | Lista de los idiomas admitidos para el corrector ortográfico y la búsqueda semántica. |
queryLanguage
Los valores válidos para el parámetro queryLanguage se proporcionan en la tabla siguiente, en la columna "queryLanguage" y no distinguen mayúsculas de minúsculas. El valor predeterminado del parámetro en su conjunto es "en-us". Dentro de cada idioma, hay una variante predeterminada para cada código de lenguaje de dos caracteres. Por ejemplo, si especifica "es", se usa "es-us" de forma predeterminada. El parámetro queryLanguage es necesario para una solicitud de consulta que incluya "queryType=semantic" o "speller=lexicon". Solo hay un valor queryLanguage para toda la solicitud y ese valor se usará para la clasificación semántica, los títulos, las respuestas y el corrector ortográfico (no hay invalidación para las características individuales).
En este momento, la compatibilidad con idiomas varía según la característica. Solo se admiten inglés, español, francés y alemán para el conjunto completo de características, pero observe que la revisión ortográfica implementa menos variantes.
Si especifica un código de idioma que no es compatible con una característica determinada, como EN-GB con corrector ortográfico, el servicio devuelve HTTP 400.
Para obtener más información sobre el uso de cada característica, vea Habilitar clasificación semántica y subtítulos, Devolver una respuesta semánticay Agregar revisión ortográfica a las consultas.
La designación "(preview)" indica que las pruebas de validación en todas las características (clasificación semántica, subtítulos, respuestas y revisión ortográfica) están en curso o pendientes. Recomendamos el uso de todas las variantes de lenguaje en la tabla siguiente, pero se recomienda realizar más pruebas de idiomas en versión preliminar para asegurarse de que los resultados son válidos para el contenido. Los idiomas con una marca de verificación y ninguna designación de vista previa se han validado mediante conjuntos de datos equivalentes, con una ganancia medible en relevancia.
Idioma | queryLanguage | Clasificador semántico y subtítulos | Respuesta semántica | Corrector ortográfico |
---|---|---|---|---|
Inglés [en ] |
en, en-US (valor predeterminado), en-GB , en-IN , en-CA , en-AU |
✔️ | ✔️ | ✔️ (en, en-US ) |
Francés [fr ] |
fr , fr-FR (valor predeterminado), fr-CA |
✔️ | ✔️ | ✔️ (fr, fr-FR ) |
Alemán [de ] |
de, de-DE (valor predeterminado) |
✔️ | ✔️ | ✔️ (de, de-DE ) |
Español [es ] |
es, es-ES (valor predeterminado), es-MX |
✔️ | ✔️ | ✔️ (es, es-ES ) |
Italiano [it ] |
it, it-IT (valor predeterminado) |
✔️ | ✔️ | |
Japonés [ja ] |
ja, ja-JP (valor predeterminado) |
✔️ | ✔️ (versión preliminar) | |
Chino [zh ] |
zh, zh-CN (valor predeterminado), zh-TW |
✔️ | ✔️ (versión preliminar) | |
Portugués [pt ] |
pt, pt-BR (valor predeterminado), pt-PT |
✔️ | ✔️ (versión preliminar) | |
Neerlandés [nl ] |
nl, nl-BE, nl-NL (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | ✔️ (nl, nl-NL ) |
Árabe [ar ] |
ar, ar-SA (valor predeterminado), ar-EG, ar-MA, ar-KW, ar-JO |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Armenio |
hy-AM (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Bangla |
bn-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Vasco |
eu-ES (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Búlgaro [bg ] |
bg, bg-BG (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Catalán [ca ] |
ca, ca-ES (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Croata [hr ] |
hr, hr-HR (valor predeterminado), hr-BA |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Checo [cs ] |
cs, cs-CZ (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Danés [da ] |
da, da-DK (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Estonio [et ] |
et, et-EE (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Finés [fi ] |
fi, fi-FI (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Gallego |
gl-ES (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Griego [el ] |
el, el-GR (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Gujarati |
gu-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Hebreo |
he-IL (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Hindi [hi ] |
hi, hi-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Húngaro [hu ] |
hu, hu-HU (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Islandés [is ] |
is, is-IS (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Indonesio [id ] |
id, id-ID (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Irlandés |
ga-IE (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Kannada |
kn-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Coreano [ko ] |
ko, ko-KR (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Letón [lv ] |
lv, lv-LV (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Lituano [lt ] |
lt, lt-LT (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Malayalam |
ml-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Malasia [ms ] |
ms, ms-MY (valor predeterminado), ms-BN |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Marathi |
mr-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Noruego [no ] |
no, no-NO (valor predeterminado), nb-NO | ✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Persa |
fa-AE (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Polaco [pl ] |
pl, pl-PL (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Punjabí |
pa-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Rumano [ro ] |
ro, ro-RO (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Ruso [ru ] |
ru, ru-RU (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Serbio [sr ] (cirílico o latino) |
sr, sr-BA (valor predeterminado), sr-ME, sr-RS |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Eslovaco [sk ] |
sk, sk-SK (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Esloveno [sl ] |
sl, sl-SL (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Tamil [ta ] |
ta, ta-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Sueco [sv ] |
sv, sv-SE (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Telugu |
te-IN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Tailandés [th ] |
th, th-TH (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Turco [tr ] |
tr, tr-TR (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Ucrania [uk ] |
uk, uk-UA (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Urdu |
ur-PK (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) | |
Vietnamita [va ] |
va, vi-VN (valor predeterminado) |
✔️ (versión preliminar) | ✔️ (versión preliminar) |