Как использовать ранжирование для отображения результатов в API Bing для поиска в ИнтернетеHow to use ranking to display Bing Web Search API results

Каждый ответ поиска содержит объект RankingResponse, который описывает требуемый формат отображения результатов поиска.Each search response includes a RankingResponse answer, that specifies how you must display the search results. Ответ ранжирования объединяет результаты по содержимому основного поля и боковой панели традиционной страницы результатов поиска.The ranking response groups results by mainline content and sidebar content for a traditional search results page. Если вы не используете для отображения результатов стандартный формат основного поля и боковой панели, нужно по меньшей мере обеспечить более высокую заметность для содержимого основного поля.If you do not display the results in a traditional mainline and sidebar format, you must provide the mainline content higher visibility than the sidebar content.

В каждой группе (основное поле или боковая панель) есть массив Items, который определяет порядок отображения содержимого.Within each group (mainline or sidebar), the Items array identifies the order that the content must appear in. Каждый элемент предоставляет следующие два метода идентификации результатов в ответе.Each item provides the following two ways to identify the result within an answer.

  • answerType и resultIndex. Поле answerType идентифицирует тип ответа (например, Webpage или News), а resultIndex идентифицирует результат в этом ответе (например, новостную статью).answerType and resultIndex — The answerType field identifies the answer (for example, Webpage or News) and resultIndex identifies a result within the answer (for example, a news article). Нумерация индекса начинается с нуля.The index is zero based.

  • value. Поле value содержит идентификатор, который обозначает некоторый ответ или результат в этом ответе.value — The value field contains an ID that matches the ID of either an answer or a result within the answer. Идентификатор может встречаться только в ответе или только в результате.Either the answer or the results contain the ID but not both.

Использовать идентификатор проще, так как требуется только согласовать идентификатор ранжирования и идентификатор определенного ответа или одного из его результатов.Using the ID is simpler to use because you only need to match the ranking ID with the ID of an answer or one of its results. Если объект ответа содержит поле id, при отображении объедините все результаты из этого ответа.If an answer object includes an id field, display all the answer's results together. Например, если объект News содержит поле id, отобразите вместе все содержащиеся в нем новостные статьи.For example, if the News object includes the id field, display all the news articles together. Если объект News не содержит поле id, тогда поле id должно включаться во все новостные статьи, и ответ ранжирования будет содержать новостные статьи наряду с результатами из других ответов.If the News object does not include the id field, then each news article contains an id field and the ranking response mixes the news articles with the results from other answers.

Использовать answerType и resultIndex немного сложнее.Using the answerType and resultIndex is a little more complicated. С помощью answerType можно найти ответ, который содержит результаты для отображения.You use answerType to identify the answer that contains the results to display. Затем с помощью resultIndex следует определить порядок результатов в этом ответе и создать отображаемые результаты.Then, you use resultIndex to index through the answer's results to get the result to display. (Значение answerType содержит имя поля в объекте SearchResponse.) Если вам не нужно отображать вместе все результаты из ответа, элемент ранжирования в ответе не будет содержать поле resultIndex.(The answerType value is the name of the field in the SearchResponse object.) If you're supposed to display all the answer's results together, the ranking response item doesn't include the resultIndex field.

Пример ответа ранжированияRanking response example

Ниже приведен пример элемента RankingResponse.The following shows an example RankingResponse. Так как ответ при поиске в Интернете не включает в себя поле id, будут отображены все веб-страницы по отдельности в соответствии с ранжированием (каждая веб-страница содержит поле id).Because the Web answer does not include an id field, you'd display all webpages individually based on the ranking (each webpage includes an id field). И так как найденные изображения, видео и связанные результаты поиска содержат поле id, будут отображены результаты для каждого из этих типов ответов вместе на основании ранжирования.And because the images, videos, and related searches answers do include the id field, you'd display the results of each of those answers together based on the ranking.

{  
    "_type" : "SearchResponse",
    "webPages" : {
        "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=96C4CF214...",
        "totalEstimatedMatches" : 835000,
        "value" : [
            {
                "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.0",
                "name" : "Motor Sports - Live at the race track ...",
                "url" : "http:\/\/www.bing.com\/cr?IG=96C4CF214A0A43...",
                "displayUrl" : "www.contoso.com\/usa\/eventsandracing\/motorsport",
                "snippet" : "Here you will find detailed information about racing...",
                "deepLinks" : [{
                    "name" : "Customer Racing",
                    "url" : "http:\/\/www.bing.com\/cr?IG=96C4CF214A0A43...",
                    "snippet" : "Customer racing news; General news..."
            },
            . . .  
        ]  
    }],  
    "images" : {
        "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#Images",
        "readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/images...",
        "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=96C4CF214A...",
        "isFamilyFriendly" : true,
        "value" : [
            {
                "name" : "2016 Supercar Wallpapers",
                "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=96C4...",
                "thumbnailUrl" : "https:\/\/tse1.mm.bing.net\/th?id=OIP...",
                "datePublished" : "2017-03-25T11:14:00",
                "contentUrl" : "http:\/\/www.contoso.com\/wall...",
                "hostPageUrl" : "http:\/\/www.bing.com\/cr?IG=96C4CF214...",
                "contentSize" : "373283 B",
                "encodingFormat" : "jpeg",
                "hostPageDisplayUrl" : "http:\/\/www.contoso.com\/lmp-...",
                "width" : 1920,
                "height" : 1080,
                "thumbnail" : {
                    "width" : 300,
                    "height" : 168
                },
                "insightsSourcesSummary" : {
                    "shoppingSourcesCount" : 0,
                    "recipeSourcesCount" : 0
                }
            },
            . . .  
        ]  
    },  
    "relatedSearches" : {
        "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#RelatedSearches",
        "value" : [
            {
                "text" : "vintage racing teams",
                "displayText" : "vintage racing teams",
                "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=96C4CF2..."
            },
            . . .  
        ]  
    },  
    "videos" : {
        "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#Videos",
        "readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/videos...",
        "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=96C4CF214A...",
        "isFamilyFriendly" : true,
        "value" : [
            {
                "name" : "Why We Race",
                "description" : "A new era begins in motorsports this weekend...",
                "webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=96C4CF2...",
                "thumbnailUrl" : "https:\/\/tse4.mm.bing.net\/th?id=OVP.Vo1...",
                "datePublished" : "2014-01-25T16:31:48",
                "publisher" : [
                    {
                        "name" : "Fabrikam"
                    }
                ],
                "contentUrl" : "https:\/\/www.fabrikam.com\/watch?v=oL...",
                "hostPageUrl" : "https:\/\/www.bing.com\/cr?IG=96C4CF214...",
                "encodingFormat" : "mp4",
                "hostPageDisplayUrl" : "https:\/\/www.fabrikam.com\/watch?v=oLAZgD...",
                "width" : 480,
                "height" : 360,
                "duration" : "PT2M42S",
                "motionThumbnailUrl" : "https:\/\/tse4.mm.bing.net\/th?id=OM...",
                "embedHtml" : "<iframe width=\"1280\" height=\"720\" src=\"http:\/\/www.you...<\/iframe>",
                "allowHttpsEmbed" : true,
                "viewCount" : 47325,
                "thumbnail" : {
                    "width" : 300,
                    "height" : 168
                },
                "allowMobileEmbed" : true,
                "isSuperfresh" : false
            },
            . . .  
        ]  
    },  
    "rankingResponse" : {
        "mainline" : {
            "items" : [{
                "answerType" : "WebPages",
                "resultIndex" : 0,
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.0"
                }
            },
            {
                "answerType" : "Images",
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#Images"
                }
            },
            {
                "answerType" : "WebPages",
                "resultIndex" : 1,
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.1"
                }
            },
            {
                "answerType" : "WebPages",
                "resultIndex" : 2,
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.2"
                }
            },
            {
                "answerType" : "Videos",
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#Videos"
                }
            },
            {
                "answerType" : "WebPages",
                "resultIndex" : 3,
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.3"
                }
            },
            {
                "answerType" : "WebPages",
                "resultIndex" : 4,
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.4"
                }
            },
            {
                "answerType" : "WebPages",
                "resultIndex" : 5,
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#WebPages.5"
                }
            }]
        },
        "sidebar" : {
            "items" : [{
                "answerType" : "RelatedSearches",
                "value" : {
                    "id" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/#RelatedSearches"
                }
            }]
        }
    }
}  

На основании этого ответа ранжирования в основном поле отобразятся следующие результаты:Based on this ranking response, the mainline would display the following search results:

  • первая найденная веб-страница;The first webpage result
  • все изображения;All the images
  • вторая и третья найденные веб-страницы;The second and third webpage results
  • все видео;All the videos
  • четвертая, пятая и шестая найденные веб-страницы.The 4th, 5th, and 6th webpage results

На боковой панели отобразятся следующие результаты поиска:And the sidebar would display the following search results:

  • все связанные результаты поиска.All the related searches

Дальнейшие действияNext steps

Сведения о повышении уровня неранжированных результатов см. в разделе Повышение уровня результатов, которые не ранжированы.For information about promoting unranked results, see Promoting answers that are not ranked.

Сведения об ограничении числа ранжированных результатов в ответе см. в разделе Ограничение числа результатов в ответе.For information about limiting the number of ranked answers in the response, see Limiting the number of answers in the response.

Пример на C#, использующий ранжирование для отображения результатов, доступен в руководстве по использованию ранжирования на языке C#.For a C# example that uses ranking to display results, see C# ranking tutorial.