Azure搜索:价格范围 - 最小值和最大值计算

Sne*_*der 12 .net c# lucene lucene.net azure-cognitive-search

目前,我正在尝试Azure Search SDK.Azure搜索具有强大的背景和lucenebobobrowse,非常棒,并且具有开箱即用的两个框架的许多功能.

我唯一感到困惑的是获得数字小平面项的最小值和最大值.按意图,我不想使用interval参数也不想使用值列表:

Azure Facet导航

我的要求是用计算出的最小值和最大值显示价格方面.以下网站在其方面列表中有这样一个方面:

价格范围

在我现有的桌面应用程序(.Net)中,我成功使用了BoboBrowse框架并实现了Custom-FacetHandler以获得所需的结果,如下图所示:

MultiValue Facet处理程序结果

别介意这些图片中的方面值.这些只是工具的长度,高度和其他特征值.

这是我为演示目的构建一个文档的方法.有一个动态生成的价格字段.由于azure搜索需要每个索引的强固定模式.我在索引过程中更新架构.这非常有效.

价格领域

所以问题是如何通过azure搜索实现所需的功能?

在弹性搜索中,可以通过使用聚合来解决这样的问题.Azure搜索中是否存在此功能?

Die*_*ego 1

$filter参数支持lt(小于)和gt(大于)运算符。例如:$filter=price gt 0 and price lt < 100

示例代码:

string PriceFilter(double? fromPrice, double? toPrice)
{
   var filter = "$filter=";
   if(fromPrice.HasValue) 
          filter+="price gt " + fromPrice.Value.ToString() 
                + (toPrice.HasValue ? " and " : "");
   if(toPrice.HasValue) 
          filter+="price lt " + toPrice.Value.ToString();
   return filter;
}
Run Code Online (Sandbox Code Playgroud)

参考:为范围构建过滤器

  • 仅对于过滤操作,这是正确的,但我正在寻找一种在请求实际范围方面时获取最小值和最大值的方法 (4认同)