首页 文章

RavenDB按Range字段排序

提问于
浏览
1

我一直在玩RavenDB Northwind数据库,并且无法按照Freight分类订单 .

我的索引:

Map = orders => from o in orders
                    select new {
                            o.Freight
                        };
    IndexSortOptions.Add(x => x.Freight, SortOptions.Double);
    Indexes.Add(x => x.Freight, FieldIndexing.NotAnalyzed);

我的查询:

return sess.Query<Order>("Orders/ByFreight")
                    .OrderByDescending(x => x.Freight)
                    .Select(x => x.Freight);

它得到以下订单:

[
    32.38,
    11.61,
    65.83,
    41.34 ... ]

这显然是不正确的 . 在工作室,我可以通过运费定义订单,并且订单很好 . 但是,如果在工作室中我将范围指定为超过Freight_Range,我会得到相同的结果 . 在我看来,Raven正在选择Freight_Range字段来排序而不是Freight字段 . 为什么?

1 回答

  • 1
    • 删除以 Indexes.Add 开头的行 . 你不需要这样做 .

    • 使用此语法而不是 IndexSortOptions

    Sort(x=> x.Freight, SortOptions.Double);
    
    • 确保您的 Freight 字段确实是 Order 类中定义的双精度数 .

相关问题