Solr-C#查询排序字段莫名追加's'问题排查求助
问题:Solr排序功能异常,生成的sort参数多了额外的's'
我们的Solr排序功能无法正常工作,经排查发现生成的查询语句末尾为sort=date_tdts%20desc,而正确格式应为sort=date_tdt%20desc(多了一个额外的's')。我们不清楚代码中该额外's'的来源,以下是相关代码片段,请求排查原因:
索引字段配置
[IndexField("date_tdt")] public DateTime Date { get; set; }
查询生成代码
var orderExpression = searchAdapter.MapFilterToOrder(query, out bool orderByDescending); var resultsQueryable = providerSearchContext.GetQueryable<TSearchItem>() .Where(basePredicate); if(query.Filters != null) { var queryPredicate = CombinePredicates(query.Filters.Select(searchAdapter.MapFilterToPredicate)); resultsQueryable = resultsQueryable.Where(queryPredicate); } if (orderExpression != null) { resultsQueryable = orderByDescending ? resultsQueryable.OrderByDescending(orderExpression) : resultsQueryable.OrderBy(orderExpression); }
MapFilterToOrder方法实现
public virtual Expression<Func<ArticleSearchResultItem, object>> MapFilterToOrder(SearchQuery query, out bool @descending) { @descending = true; return x => x.Date; }
内容的提问来源于stack exchange,提问作者Erica Stockwell-Alpert
相关产品推荐
相关产品推荐

