Udostępnij za pośrednictwem


Dostosowywanie i sugerowanie zapytań wyszukiwania obrazów

Ostrzeżenie

30 października 2020 r. interfejsy API Wyszukiwanie Bing zostały przeniesione z usług Azure AI do usług Wyszukiwanie Bing Services. Ta dokumentacja jest dostarczana tylko do celów referencyjnych. Aby uzyskać zaktualizowaną dokumentację, zobacz dokumentację interfejsu API wyszukiwania Bing. Aby uzyskać instrukcje dotyczące tworzenia nowych zasobów platformy Azure na potrzeby wyszukiwania Bing, zobacz Tworzenie zasobu Wyszukiwanie Bing za pomocą Azure Marketplace.

Skorzystaj z tego artykułu, aby dowiedzieć się, jak dostosowywać zapytania i sugerować terminy wyszukiwania, które mają być wysyłane do interfejsu API wyszukiwania obrazów Bing.

Sugerowanie terminów wyszukiwania

Jeśli aplikacja ma pole wyszukiwania, w którym wprowadzono terminy wyszukiwania, możesz użyć interfejsu API automatycznego sugerowania Bing , aby poprawić środowisko pracy. Interfejs API może wyświetlać sugerowane terminy wyszukiwania w czasie rzeczywistym. Interfejs API zwraca sugerowane ciągi zapytań na podstawie częściowych terminów wyszukiwania i usług Azure AI.

Przestawne zapytanie

Jeśli usługa Bing może podzielić oryginalne zapytanie wyszukiwania, zwrócony obiekt Images zawiera wartość pivotSuggestions. Sugestie przestawne mogą być wyświetlane jako opcjonalne terminy wyszukiwania dla użytkownika. Jeśli na przykład oryginalne zapytanie to Microsoft Surface, usługa Bing może podzielić zapytanie na firmy Microsoft i urządzenie Surface i udostępnić sugerowane elementy przestawne dla każdego z nich. Te sugestie mogą być wyświetlane jako opcjonalne terminy zapytania dla użytkownika.

W poniższym przykładzie przedstawiono sugestie przestawne dotyczące urządzenia 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
}

Pole pivotSuggestions zawiera listę segmentów (elementów bazowych), na które zostało podzielone oryginalne zapytanie. Dla każdego elementu bazowego odpowiedź zawiera listę obiektów Query zawierających sugerowane zapytania. Pole text zawiera sugerowane zapytanie. Pole displayText zawiera termin, który zastępuje element przestawny w oryginalnym zapytaniu. Przykładem jest data wydania urządzenia Surface.

Jeśli ciąg zapytania przestawnego jest tym, czego szuka użytkownik, użyj text pól i thumbnail , aby wyświetlić ciągi zapytania przestawnego. Ustaw miniaturę i tekst na kliknięcie przy użyciu webSearchUrl adresu URL lub searchLink adresu URL. Użyj webSearchUrl polecenia , aby wysłać użytkownika do wyników wyszukiwania Bing. Jeśli podasz własną stronę wyników, użyj polecenia searchLink.

Rozwijanie zapytania

Jeśli usługa Bing może rozwinąć zapytanie w celu zawężenia kryteriów oryginalnego wyszukiwania, obiekt Images zawiera pole queryExpansions. Jeśli na przykład zapytanie było platformą Microsoft Surface, rozszerzone zapytania mogą być następujące:

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

W poniższym przykładzie pokazano rozwinięte zapytania dla frazy 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
}

Pole queryExpansions zawiera listę obiektów Query. Pole text zawiera rozwinięte zapytanie. Pole displayText zawiera termin rozszerzenia. Jeśli rozszerzony ciąg zapytania jest tym, czego szuka użytkownik, użyj text pól i thumbnail , aby wyświetlić rozwinięte ciągi zapytania. Ustaw miniaturę i tekst na kliknięcie przy użyciu webSearchUrl adresu URL lub searchLink adresu URL. Użyj webSearchUrl polecenia , aby wysłać użytkownika do wyników wyszukiwania Bing. Jeśli podasz własną stronę wyników, użyj polecenia searchLink.

Ograniczanie żądań

Usługa i typ subskrypcji decydują o liczbie zapytań, które możesz wykonywać na sekundę. Upewnij się, że Twoja aplikacja zawiera logikę niezbędną do nieprzekraczania tego limitu przydziału. W przypadku osiągnięcia lub przekroczenia limitu liczby zapytań na sekundę żądanie kończy się niepowodzeniem i jest zwracany kod stanu HTTP 429. Odpowiedź zawiera nagłówek Retry-After, która wskazuje, jak długo należy zaczekać przed wysłaniem kolejnego żądania.

Odmowa usługi a ograniczanie przepustowości

Usługa odróżnia atak typu „odmowa usługi” (DoS) od naruszenia liczby zapytań na sekundę. Jeśli usługa podejrzewa atak DoS, żądanie kończy się powodzeniem (kod stanu HTTP to 200 OK). Treść odpowiedzi jest jednak pusta.

Następne kroki

Jeśli wcześniej nie wypróbowano interfejsu API wyszukiwania obrazów Bing, wypróbuj przewodnik Szybki start. Jeśli szukasz czegoś bardziej złożonego, spróbuj utworzyć jednostronicową aplikację internetową.