【问题标题】:Making Azure cognitive search precise使 Azure 认知搜索精确
【发布时间】:2020-09-19 05:40:01
【问题描述】:

已经在我的网站上实现了Bing Web Search,但我想限制随机结果并使搜索更加精确。

这里是接受的搜索场景。

  1. 将结果限制在我的网站上,例如www.stackoverflow.com
  2. 然后首先显示来自特定子站点 www.stackoverflow.com/language/foo/bar 的搜索,然后是同一域下的其他站点

这是代码

        public static async Task<SearchResultModel> WebResultsWithCountAndOffset(WebSearchClient client, string searchQuery,int pageNumber)
        {
            SearchResultModel model = new SearchResultModel();

            List<SearchResult> searchResults = new List<SearchResult>();
            try
            {
                var offset = (pageNumber-1) * 20;
                var webData = await client.Web.SearchAsync(query: searchQuery.Replace(' ', '+') + " domain:stackoverflow.com OR site:www.stackoverflow.com/language/foo/bar", offset: offset, count: 20, textFormat: "HTML", textDecorations: true, countryCode: "US"); 
                if (webData?.WebPages?.Value?.Count > 0)
                {
                    model.totalCount = webData.WebPages.TotalEstimatedMatches;
                    var WebPagesResult = webData.WebPages.Value.ToList();
                    var ds = webData.SpellSuggestions;
                    foreach(var d in WebPagesResult)
                    {
                        SearchResult result = new SearchResult();
                        result.PageURL = d.Url;
                        result.Snippet = d.Snippet;
                        result.Title = d.Name;
                        searchResults.Add(result);
                    }
                    model.list = searchResults;
                }
                else
                {
                    Console.WriteLine("Didn't see any Web data..");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Encountered exception. " + ex.Message);
            }
            return model;
        }

我可以看到传入的数据,但对我来说这似乎无关紧要。域限制效果很好,但是结果的顺序和精度仍然无关紧要。请注意,我所指的域可以有数千页索引,但精度看起来完全偏离轨道。

【问题讨论】:

标签: c# azure bing-api


【解决方案1】:

对于站点限制,请使用site:,如文档here(“q”字段)和here中所示。但要小心,因为最大深度限制为 2 级:

您可以使用 site: 搜索网络域、顶级域和 深度不超过两层的目录。

因此,请从您的查询中删除您的“域:...”以避免不必要的结果。对于您的“精确度”问题,这里的“更精确”是什么意思?

【讨论】:

  • 使用site 关键字使它变得更加无关紧要,我在发布问题之前已经尝试过了:),事实上我同时使用domain:site:。当我说“更精确”时,我的意思是,如果我搜索 battery,我似乎看到的结果在任何地方都没有 battery 作为最重要的结果,但在一些不相关的结果之后,我确实看到了与 battery 相关的结果,所以我只想让它们按正确的顺序列出。有没有什么类似于根据它与问题的匹配程度来评分的东西,以便我可以相应地重新排序?
猜你喜欢
  • 2020-03-27
  • 1970-01-01
  • 2022-01-12
  • 2021-09-21
  • 2021-04-28
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多