【问题标题】:How to fix performance issue in azure search如何解决 Azure 搜索中的性能问题
【发布时间】:2019-02-05 02:58:47
【问题描述】:

我正在我的应用程序中实现 azure 搜索,以提供自动建议功能,如 google、big 和 amazon。我已经使用下面的 URL 实现了相同的可用 github 代码。一切正常,但每个句子的结果超过 1.5 秒。 https://github.com/Azure-Samples/search-dotnet-getting-started/tree/master/DotNetHowToAutocomplete

目前我正在使用两个索引进行搜索并在基本层中创建。下面是代码

 public ActionResult Suggest(bool highlights, bool fuzzy, string term)
    {
        InitSearch();

        // Call suggest API and return results
        SuggestParameters sp = new SuggestParameters()
        {
            UseFuzzyMatching = fuzzy,
            Top = 5,
            Filter="name eq 'testid'",
            OrderBy=new List<string>() { "Date desc"}

        };


         if (highlights)
        {
            sp.HighlightPreTag = "<b>";
            sp.HighlightPostTag = "</b>";
        }
        DocumentSuggestResult suggestResult = _indexClient1.Documents.Suggest(term, "index1",sp);
        if (suggestResult.Results.Count<5)
        {

            SuggestParameters sp2 = new SuggestParameters()
            {
                UseFuzzyMatching = fuzzy,
                Top = 5- suggestResult.Results.Count,
                Filter = "Product eq 'PAAS'",
                OrderBy = new List<string>() { "Count desc" }

            };
            if (highlights)
            {
                sp2.HighlightPreTag = "<b>";
                sp2.HighlightPostTag = "</b>";
            }
            DocumentSuggestResult suggestResult2= _indexClient2.Documents.Suggest(term, "index2", sp2);
            suggestResult.Results = suggestResult.Results.Union(suggestResult2.Results).Distinct().ToList();
           // final = suggestResult.Results.GroupBy(s => s.Text, StringComparer.CurrentCultureIgnoreCase).ToList();
        }


        // Convert the suggest query results to a list that can be displayed in the client.
        List<string> suggestions = suggestResult.Results.Select(x => x.Text).Distinct().ToList();

        return new JsonResult
        {
            JsonRequestBehavior = JsonRequestBehavior.AllowGet,
            Data = suggestions
        };
    }

为了测试它——当我输入任何单词时,它会花费太多时间来填充结果,大约需要 1.5 到 1.8 秒,它的工作方式与其他网络应用搜索框一样。

我正在使用 chrome 浏览器的检查元素进行检查。附上截图。see screenshot

请提出建议。

【问题讨论】:

  • 您并没有真正展示任何细节(除了指向示例的链接)。没有更多细节,它真的会让你猜测。另外:您是否尝试过提高等级以查看是否有所作为?您将其与什么进行比较,以考虑性能“慢”?你是如何进行基准测试的?请相应地编辑您的问题。正如目前所写的那样,不幸的是,这与“太宽泛”无关。
  • @DavidMakogon 感谢您的快速回复。我添加了示例代码并提供了详细信息。如果有其他方法可以在本地测试性能,请建议我。
  • 您能分享一下您是如何测量 1.5 秒的吗?
  • @ramero-MSFT 感谢您的回复。屏幕截图共享,我正在使用 chrome 浏览器对其进行测量。我也能感觉到它并没有像其他网络应用搜索功能一样快速出现。请提出建议。

标签: azure azure-web-app-service azure-cognitive-search


【解决方案1】:

我在另一个帖子中回答了类似的问题:Why is Azure Search taking 1400 miliiseconds to return query results for simple query

最主要的是,您不应该使用 Chrome 计时器来衡量 azure 搜索的性能。使用您收到的 HTTP 响应的“经过时间”字段(对多次调用取平均值),因为它准确地告诉您从 azure 搜索中获取结果所花费的时间。 chrome 计时器可能会受到您的网络/机器配置的影响。如果这没有帮助,您可以按照我在上面链接的帖子中建议的其他提示进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多