C# Azure Search.NET SDK中按复杂类型排序?

C# Azure Search.NET SDK中按复杂类型排序?,c#,azure,azure-cognitive-search,azure-search-.net-sdk,C#,Azure,Azure Cognitive Search,Azure Search .net Sdk,因此,我使用父/子结构构建了一个索引,如下所示: { "Id": "13704", "StreetNumber": "29", "StreetName": "Fiction Road", "PostalCode": "DD1 G33"

因此,我使用父/子结构构建了一个索引,如下所示:

    {
            "Id": "13704",
            "StreetNumber": "29",
            "StreetName": "Fiction Road",
            "PostalCode": "DD1 G33"
            "CityName": "Fiction City",
            "Property": {
                "ID": 13592,
                "ParentPropertyID": 123
            }
    }
我想按属性/ParentPropertyID排序,它在Azure门户上使用以下查询字符串可以正常工作:

search=DD1 G33&searchmode=all&$orderby=Property/ParentPropertyID asc
这将按预期工作,并返回与此邮政编码匹配的记录列表(按指定顺序排列)。但是,当我尝试使用Azure Search SDK在C#中执行此操作时,它会返回结果,但似乎没有按顺序应用。如果我使用其中一个父字段(例如StreetNumber),它确实有效,因此它似乎仅限于复杂类型。代码:

            SearchParameters parameters;
            DocumentSearchResult<TempAddress> results;

            parameters =
                new SearchParameters()
                {
                    SearchMode = SearchMode.All,
                    OrderBy = new[] { "Property/ParentPropertyID asc" }
                };

            results = _searchIndexClient.Documents.Search<TempAddress>("DD1 G33", parameters);
致:


OrderBy可以正常工作。我真的不明白为什么这在代码中不起作用,但在门户网站上起作用?

多亏了sathya_vijayakumar-MSFT,我找到了问题所在,发布了一个答案,以防其他人也有同样的问题。我使用的是Microsoft.Azure.Search Nuget软件包,它只升级到版本10,但版本10的目标是2019-05-06搜索API,它似乎不支持按复杂类型排序。如果我自己使用2020-06-30API手动进行查询,它可以正常工作。使用2019-05-06版本的相同手动查询不起作用


事实证明,SDK的第11版可用于此API版本,但它位于另一个NuGet软件包中:Azure.Search.Documents,这是对原始软件包的一个突破性更改(请参阅)。

代码看起来不错。我在最后尝试过,对于复杂的类型,排序效果很好。请检查SDK版本,确保您是最新版本。此外,您可以尝试捕获跟踪(您可以使用Fiddler或任何工具)。查看请求和解码响应的外观。看看有没有什么不同。谢谢,我已经意识到问题出在哪里了。我使用的是SDK的v10,目标是API版本2019-05-06,但是当手动查询索引时,我使用的是2020-06-30。刚刚发现在一个单独的Nuget包中有一个SDK的v11。
OrderBy = new[] { "Property/ParentPropertyID asc" }
OrderBy = new[] { "StreetNumber desc" }