다음을 통해 공유


이미지 검색 쿼리 사용자 지정 및 제안

경고

2020년 10월 30일에 Bing Search API가 Azure AI 서비스에서 Bing Search Services로 이동되었습니다. 이 문서는 참조용으로만 제공됩니다. 업데이트된 문서는 Bing search API 문서를 참조하세요. Bing 검색을 위한 새 Azure 리소스 만들기에 대한 지침은 Azure Marketplace를 통해 Bing Search 리소스 만들기를 참조하세요.

이 문서를 사용하여 쿼리를 사용자 지정하고 Bing Image Search API에 보낼 검색어를 제안하는 방법을 알아봅니다.

검색어 제안

앱에 검색어를 입력한 검색 상자가 있는 경우 환경을 개선하기 위해 Bing Autosuggest API를 사용할 수 있습니다. API는 제안된 검색어를 실시간으로 표시할 수 있습니다. API는 부분 쿼리 및 Azure AI 서비스를 기반으로 제안된 쿼리 문자열을 반환합니다.

쿼리 피벗

Bing이 원래 검색 쿼리를 분할할 수 있는 경우 반환된 이미지 개체에는 pivotSuggestions가 포함됩니다. 사용자에게 선택적 검색어로 피벗 제안을 표시할 수 있습니다. 예를 들어 원래 쿼리가 Microsoft Surface인 경우 Bing은 쿼리를 MicrosoftSurface로 분할하고 각각에 피벗을 제안할 수 있습니다. 사용자에게 선택적 쿼리 용어로 이러한 제안을 표시할 수 있습니다.

다음 예제에서는 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
}

pivotSuggestions 필드에는 원래 쿼리가 분할된 세그먼트(피벗) 목록이 포함됩니다. 각 피벗에 대한 응답에는 제안된 쿼리를 포함하는 쿼리 개체 목록이 포함됩니다. text 필드에는 제안된 쿼리가 포함됩니다. displayText 필드에는 원래 쿼리의 피벗을 대체하는 용어가 포함됩니다. 예를 들어 Release Date of Surface(Surface의 릴리스 날짜)입니다.

피벗 쿼리 문자열이 사용자가 찾는 것이라면 textthumbnail 필드를 사용하여 피벗 쿼리 문자열을 표시합니다. webSearchUrl URL 또는 searchLink URL을 사용하여 썸네일 및 텍스트를 클릭할 수 있게 만듭니다. webSearchUrl을 사용하여 Bing 검색 결과로 사용자를 보냅니다. 고유한 결과 페이지를 제공하는 경우 searchLink를 사용합니다.

쿼리 확장

Bing이 원래 검색을 좁히기 위해 쿼리를 확장하는 경우 이미지 개체에는 queryExpansions 필드가 포함됩니다. 예를 들어 쿼리가 Microsoft Surface인 경우 확장된 쿼리는 다음과 같을 수 있습니다.

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

다음 예제에서는 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
}

queryExpansions 필드에는 쿼리 개체 목록이 포함됩니다. text 필드에는 확장된 쿼리가 포함됩니다. displayText 필드에는 확장 용어가 포함됩니다. 확장된 쿼리 문자열이 사용자가 찾는 것이라면 textthumbnail 필드를 사용하여 확장된 쿼리 문자열을 표시합니다. webSearchUrl URL 또는 searchLink URL을 사용하여 썸네일 및 텍스트를 클릭할 수 있게 만듭니다. webSearchUrl을 사용하여 Bing 검색 결과로 사용자를 보냅니다. 고유한 결과 페이지를 제공하는 경우 searchLink를 사용합니다.

제한 요청

서비스 및 구독 유형에 따라 만들 수 있는 QPS(초당 쿼리 수)가 결정됩니다. 할당량 내에서 유지하는 논리가 애플리케이션에 포함되어 있는지 확인합니다. QPS 제한에 도달하거나 초과하면 요청이 실패하고 HTTP 429 상태 코드가 반환됩니다. 응답에는 Retry-After 헤더가 포함됩니다. 이 헤더는 다른 요청을 보내기 전에 기다려야 하는 시간을 나타냅니다.

DoS(서비스 거부) 및 제한

서비스는 DoS(서비스 거부) 공격과 QPS 위반을 구분합니다. 서비스에서 DoS 공격을 의심하면 요청이 성공합니다(HTTP 상태 코드는 200 정상). 하지만 응답 본문은 비어 있습니다.

다음 단계

Bing Image Search API를 사용해본 적이 없다면 빠른 시작을 사용하세요. 더 복잡한 항목을 찾는 경우 단일 페이지 웹앱을 만들기 위한 자습서를 사용하세요.