Получение результата ответа из Когнитивного поиска Azure
Есть ли у кого-нибудь пример получения ответа из семантического поиска в Когнитивном поиске Azure с использованием С#.
Это то, что у меня есть, но я могу получить от него AnswerResult.
SearchOptions options;
SearchResults<Hotel> response;
options = new SearchOptions()
{
QueryType = Azure.Search.Documents.Models.SearchQueryType.Semantic,
QueryLanguage = QueryLanguage.EnUs,
SemanticConfigurationName = "my-semantic-config",
QueryCaption = QueryCaptionType.Extractive,
QueryCaptionHighlightEnabled = true
};
options.Select.Add("HotelName");
options.Select.Add("Category");
options.Select.Add("Description");
// response = srchclient.Search<Hotel>("*", options);
response = srchclient.Search<Hotel>("Who is the manager of Triple Landscape Hotel?", options);
Я пробовал и вижу ответ в остальном, но я немного новичок в его использовании С#
1 ответ
Чтобы получить доступ к семантическому ответу с помощью .NET SDK для Когнитивного поиска Azure, вам необходимо пройтиQueryAnswer = QueryAnswerType.Extractive
на ваш . Затем вы можете просмотреть свойство Answers следующим образом:
Сначала обновите свойSearchOptions
:
options = new SearchOptions()
{
// Other options...
QueryAnswer = QueryAnswerType.Extractive // Add this line to enable query answer
};
Затем пройдитесь по извлеченным ответам в словаре после выполнения поиска:
if (response.Answers != null && response.Answers.TryGetValue("extractive", out var extractiveAnswers))
{
Console.WriteLine("Query Answer:");
foreach (AnswerResult result in extractiveAnswers)
{
Console.WriteLine($"Answer Highlights: {result.Highlights}");
Console.WriteLine($"Answer Text: {result.Text}\n");
}
}
Этот код проверяет, есть лиresponse.Answers
не являетсяnull
и извлекает извлеченные ответы перед их циклическим просмотром.