Personalizar y sugerir consultas de búsqueda de imagenCustomize and suggest image search queries

Use este artículo para obtener información sobre cómo personalizar las consultas y sugerir términos de búsqueda para enviarlos a la API Bing Image Search.Use this article to learn how to customize queries and suggest search terms to send to the Bing Image Search API.

Sugerir términos de búsquedaSuggest search terms

Si la aplicación tiene un cuadro de búsqueda donde se escriben los términos de búsqueda, puede usar Bing Autosuggest API para mejorar la experiencia.If your app has a search box where search terms are entered, you can use the Bing Autosuggest API to improve the experience. La API puede mostrar los términos de búsqueda sugeridos en tiempo real.The API can display suggested search terms in real time. La API devuelve sugerencias de cadenas de consulta basadas en términos de búsqueda parciales y Cognitive Services.The API returns suggested query strings based on partial search terms and Cognitive Services.

Dinamización de la consultaPivot the query

Si Bing puede segmentar la consulta de búsqueda original, el objeto Images devuelvo contiene el elemento pivotSuggestions.If Bing can segment the original search query, the returned Images object contains pivotSuggestions. Las sugerencias dinámicas se pueden mostrar como términos de búsqueda opcionales para el usuario.Pivot suggestions can be displayed as optional search terms to the user. Por ejemplo, si la consulta original era Microsoft Surface, Bing podría segmentar la consulta en Microsoft y Surface y proporcionar las sugerencias dinámicas de cada una.For example, if the original query was Microsoft Surface, Bing might segment the query into Microsoft and Surface and provide suggested pivots for each. Estas se pueden mostrar como términos de consulta opcionales al usuario.These suggestions can be displayed as optional query terms to the user.

El ejemplo siguiente muestra las sugerencias dinámicas para Microsoft Surface:The following example shows the pivot suggestions for Microsoft Surface:

{
    "_type": "Images",
    "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=microsoft%20surface&FORM=OIIARP",
    "totalEstimatedMatches": 1000,
    "value": [...],
    "queryExpansions": [...],
    "pivotSuggestions": [{
        "pivot": "microsoft",
        "suggestions": [{
            "text": "Contoso Surface",
            "displayText": "Contoso",
            "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=OtterBox+Surface&FORM=IRQBPS",
            "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?q=Contoso...",
                    "searchLink": "https:\/\/api.cognitive.microsoft.com\/api...",
            "thumbnail": {
                "thumbnailUrl": "https:\/\/tse3.mm.bing.net\/th?q=Contoso+Surface..."
            }
        },
        {
            "text": "Adatum Surface",
            "displayText": "Adatum",
            "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=Adatum+Surface&FORM=IRQBPS",
            "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?q=...",
            "thumbnail": {
                "thumbnailUrl": "https:\/\/tse3.mm.bing.net\/th?q=Adatum+Surface&pid=Ap..."
            }
        },
        ...
        ]
    },
    {
        "pivot": "surface",
        "suggestions": [{
            "text": "Microsoft Surface4",
            "displayText": "Surface4",
            "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=Microsoft+Surface...",
            "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?...",
            "thumbnail": {
                "thumbnailUrl": "https:\/\/tse4.mm.bing.net\/th?q=Microsoft..."
            }
        },
        {
            "text": "Microsoft Tablet",
            "displayText": "Tablet",
            "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=Microsoft+Tablet&FORM=IRQBPS",
            "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?...",
            "thumbnail": {
                "thumbnailUrl": "https:\/\/tse3.mm.bing.net\/th?q=Microsoft+Tablet..."
            }
        },
        ...
    ],
    "nextOffsetAddCount": 0
}

El campo pivotSuggestions contiene la lista de segmentos (áreas dinámicas) en los que se ha dividido la consulta original.The pivotSuggestions field contains the list of segments (pivots) that the original query was broken into. Para cada área dinámica, la respuesta contiene una lista de objetos Query que contienen las consultas sugeridas.For each pivot, the response contains a list of Query objects that contain suggested queries. El campo text contiene la consulta sugerida.The text field contains the suggested query. El campo displayText contiene el término que reemplaza el área dinámica en la consulta original.The displayText field contains the term that replaces the pivot in the original query. Por ejemplo, Release Date of Surface (Fecha de lanzamiento de Surface).An example is Release Date of Surface.

Si la cadena de consulta dinámica es lo que el usuario busca, use los campos text y thumbnail para mostrar las cadenas de consulta dinámicas.If the pivot query string is what the user is looking for, use the text and thumbnail fields to display the pivot query strings. Ofrezca al usuario la posibilidad de hacer clic en la miniatura y el texto mediante la dirección URL webSearchUrl o searchLink.Make the thumbnail and text clickable by using the webSearchUrl URL or the searchLink URL. Use webSearchUrl para enviar al usuario los resultados de la búsqueda de Bing.Use webSearchUrl to send the user to the Bing search results. Si proporciona su propia página de resultados, use searchLink.If you provide your own results page, use searchLink.

Expansión de la consultaExpand the query

Si Bing puede expandir la consulta para restringir la búsqueda original, el objeto Images contiene el campo queryExpansions.If Bing can expand the query to narrow the original search, the Images object contains the queryExpansions field. Por ejemplo, si la consulta era Microsoft Surface, las consultas expandidas podrían ser:For example, if the query was Microsoft Surface, the expanded queries might be:

  • Microsoft Surface Pro 3.Microsoft Surface Pro 3.
  • Microsoft Surface RT.Microsoft Surface RT.
  • Microsoft Surface Phone.Microsoft Surface Phone.
  • Microsoft Surface Hub.Microsoft Surface Hub.

El ejemplo siguiente muestra las consultas expandidas para Microsoft Surface.The following example shows the expanded queries for Microsoft Surface.

{
    "_type": "Images",
    "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=microsoft%20surface...",
    "totalEstimatedMatches": 1000,
    "value": [...],
    "queryExpansions":  [{
        "text": "Microsoft Surface Pro 3",
        "displayText": "Pro 3",
        "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=Microsoft+Surface+Pro+3...",
        "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?q=Microsoft...",
        "thumbnail": {
            "thumbnailUrl": "https:\/\/tse4.mm.bing.net\/th?q=Microsoft+Surface+Pro+3..."
        }
    },
    {
        "text": "Microsoft Surface RT",
        "displayText": "RT",
        "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=Microsoft+Surface+RT...",
        "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?q=...",
        "thumbnail": {
            "thumbnailUrl": "https:\/\/tse4.mm.bing.net\/th?q=Microsoft+Surface+RT..."
        }
    },
    {
        "text": "Microsoft Surface Phone",
        "displayText": "Phone",
        "webSearchUrl": "https:\/\/www.bing.com\/images\/search?q=Microsoft+Surface+Phone",
        "searchLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images\/search?q=...",
        "thumbnail": {
            "thumbnailUrl": "https:\/\/tse4.mm.bing.net\/th?q=Microsoft+Surface+Phone..."
        }
    }],
    "pivotSuggestions": [...],
    "nextOffsetAddCount": 0
}

El campo queryExpansions contiene una lista de objetos Query.The queryExpansions field contains a list of Query objects. El campo text contiene la consulta expandida.The text field contains the expanded query. El campo displayText contiene el término de la expansión.The displayText field contains the expansion term. Si la cadena de consulta expandida es la que el usuario busca, use los campos text y thumbnail para mostrar las cadenas de consulta expandidas.If the expanded query string is what the user is looking for, use the text and thumbnail fields to display the expanded query strings. Ofrezca al usuario la posibilidad de hacer clic en la miniatura y el texto mediante la dirección URL webSearchUrl o searchLink.Make the thumbnail and text clickable by using the webSearchUrl URL or the searchLink URL. Use webSearchUrl para enviar al usuario los resultados de la búsqueda de Bing.Use webSearchUrl to send the user to the Bing search results. Si proporciona su propia página de resultados, use searchLink.if you provide your own results page, use searchLink.

Solicitudes de limitaciónThrottling requests

El servicio y el tipo de suscripción determinan el número de consultas que puede realizar por segundo (QPS).The service and your subscription type determine the number of queries per second (QPS) that you can make. Asegúrese de que la aplicación incluye la lógica necesaria para mantenerse dentro de su cuota.Make sure your application includes the logic to stay within your quota. Si se alcanza el límite de consultas por segundo, o se supera, se produce un error en la solicitud y se devolverá el código de estado HTTP 429.If the QPS limit is met or exceeded, the request fails and an HTTP 429 status code is returned. La respuesta incluye el encabezado Retry-After, que indica cuánto tiempo debe esperar antes de enviar otra solicitud.The response includes the Retry-After header, which indicates how long you must wait before sending another request.

Denegación de servicio frente a LimitaciónDenial-of-service versus throttling

El servicio diferencia entre un ataque de denegación de servicio (DoS) y una infracción de las consultas por segundo.The service makes a differentiation between a denial-of-service (DoS) attack and a QPS violation. Si el servicio sospecha de un ataque de denegación de servicio, la solicitud se realiza correctamente (código de estado HTTP 200 OK).If the service suspects a DoS attack, the request succeeds (HTTP status code is 200 OK). Sin embargo, el cuerpo de la respuesta está vacío.However, the body of the response is empty.

Pasos siguientesNext steps

Si no ha probado Bing Image Search API antes, consulte una guía de inicio rápido.If you haven't tried the Bing Image Search API before, try a quickstart. Si busca algo más complejo, consulte el tutorial para crear una aplicación web de una sola página.If you're looking for something more complex, try the tutorial to create a single-page web app.