Personalizar e sugerir consultas de pesquisa de imagens

Aviso

A 30 de outubro de 2020, as APIs de Pesquisa do Bing passaram dos serviços de IA do Azure para os Serviços Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, veja a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a pesquisa do Bing, veja Criar um recurso de Pesquisa do Bing através do Azure Marketplace.

Utilize este artigo para saber como personalizar consultas e sugerir termos de pesquisa para enviar para a API de Pesquisa de Imagens do Bing.

Sugerir termos de pesquisa

Se a sua aplicação tiver uma caixa de pesquisa onde os termos de pesquisa são introduzidos, pode utilizar a API de Sugestão Automática do Bing para melhorar a experiência. A API pode apresentar termos de pesquisa sugeridos em tempo real. A API devolve cadeias de consulta sugeridas com base em termos de pesquisa parciais e serviços de IA do Azure.

Dinamizar a consulta

Se o Bing conseguir segmentar a consulta de pesquisa original, o objeto Imagens devolvido contém pivotSuggestions. As sugestões dinâmicas podem ser apresentadas como termos de pesquisa opcionais para o utilizador. Por exemplo, se a consulta original fosse o Microsoft Surface, o Bing poderia segmentar a consulta na Microsoft e no Surface e fornecer pivôs sugeridos para cada um. Estas sugestões podem ser apresentadas como termos de consulta opcionais para o utilizador.

O exemplo seguinte mostra as sugestões dinâmicas para o 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
}

O campo pivotSuggestions contém a lista de segmentos (pivôs) em que a consulta original foi dividida. Para cada pivô, a resposta contém uma lista de objetos de Consulta que contêm as consultas sugeridas. O text campo contém a consulta sugerida. O displayText campo contém o termo que substitui o pivô na consulta original. Um exemplo é a Data de Lançamento do Surface.

Se a cadeia de consulta dinâmica for o que o utilizador procura, utilize os text campos e thumbnail para apresentar as cadeias de consulta dinâmica. Torne a miniatura e o texto clicáveis com o webSearchUrl URL ou o searchLink URL. Utilize webSearchUrl para enviar o utilizador para os resultados da pesquisa do Bing. Se fornecer a sua própria página de resultados, utilize searchLink.

Expandir a consulta

Se o Bing puder expandir a consulta para restringir a pesquisa original, o objeto Imagens contém o campo queryExpansions. Por exemplo, se a consulta for o Microsoft Surface, as consultas expandidas poderão ser:

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

O exemplo seguinte mostra as consultas expandidas para 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
}

O campo queryExpansions contém uma lista de objetos de Consulta. O text campo contém a consulta expandida. O displayText campo contém o termo de expansão. Se a cadeia de consulta expandida for o que o utilizador procura, utilize os text campos e thumbnail para apresentar as cadeias de consulta expandidas. Torne a miniatura e o texto clicáveis com o webSearchUrl URL ou o searchLink URL. Utilize webSearchUrl para enviar o utilizador para os resultados da pesquisa do Bing. se fornecer a sua própria página de resultados, utilize searchLink.

Limitar pedidos

O serviço e o seu tipo de subscrição determinam o número de consultas por segundo (QPS) que pode fazer. Certifique-se de que a sua aplicação inclui a lógica necessária para se manter na sua quota. Se o limite de QPS for atingido ou excedido, o pedido falha e é devolvido um código de estado HTTP 429. A resposta inclui o cabeçalho Retry-After, que indica o tempo que tem de esperar antes de poder enviar outro pedido.

Denial of service versus Limitação

O serviço diferencia entre um ataque denial of service (DoS) e uma violação de QPS. Se o serviço suspeitar de um ataque DoS, o pedido é realizado com êxito (o código de estado HTTP é 200 OK). No entanto, o corpo da resposta está vazio.

Passos seguintes

Se ainda não experimentou a API de Pesquisa de Imagens do Bing, experimente um início rápido. Se estiver à procura de algo mais complexo, experimente o tutorial para criar uma aplicação Web de página única.