【问题标题】:How to use Azure Search SDK to filter on specific column如何使用 Azure 搜索 SDK 筛选特定列
【发布时间】:2019-12-01 06:49:48
【问题描述】:

我正在使用 Azure 搜索,我想使用 Azure 搜索 SDK 制作一个简单的过滤器表达式,但是当我想过滤特定字段时,我找不到有关如何通过代码执行此操作的文档。

搜索浏览器上的这项工作

但是,在代码中,这不起作用;

我收到语法错误:

Console.Write("Apply a filter to the index to find roles  with a rolename:Usuario, ");
            Console.WriteLine("and return the id and name:\n");

            parameters =
                new SearchParameters()
                {
                    Filter = "RoleName:Partner",
                    Select = new[] { "id", "RoleName" }
                };

            results = indexClient.Documents.Search<Role>("*", parameters);

            WriteDocuments(results);

代码基于此示例:

https://github.com/Azure-Samples/search-dotnet-getting-started/blob/master/DotNetHowTo/DotNetHowTo/Program.cs

【问题讨论】:

    标签: c# .net azure .net-core azure-cognitive-search


    【解决方案1】:

    你可以试试

    new SearchParameters()
        {
            Filter = "RoleName eq 'Partner'",
            Select = new[] { "id", "RoleName" }
        };
    

    一般来说,由于 SDK 是开源的,您可以使用 GitHub 上的单元测试来查找有关如何使用一些更常见功能的示例。

    【讨论】:

    • 感谢@Ramero,我仍然不清楚如何将其用于包含,在此处的 REST API 文档中:docs.microsoft.com/es-mx/azure/search/search-query-odata-filter,我看到了 .ismatch。您上面提供的示例只会搜索完全匹配,我正在寻找包含语法,我在单元测试中没有找到,也没有在 sdk 示例中找到。
    • 没关系,我发现我可以使用 searc.ismatch('Partner','RoleName'),效果很好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2021-11-02
    相关资源
    最近更新 更多