2017-09-20 152 views
7

目前,我正在尝试Azure搜索SDK。在与lucenebobobrowse合作的背景下,Azure Search非常出色,并且具有很多来自两种框架的功能。Azure搜索:价格范围 - 最小值和最大值计算

我唯一困惑的是得到一个数字小平面项目的最小值和最大值。意向,我不想使用interval parameter也不value lists

Azure Facet Navigation

我的要求是,以显示与计算的最小值和最大值的价格方面。以下网站有这样一个方面在他们的小清单:

Price Range

在我现有的桌面应用程序(.NET),我成功地使用BoboBrowse框架并实施了Custom-FacetHandler让它们在下面的图片显示了预期的效果如下:

MultiValue Facet Handler Result

别说这些图片中的小值。这些只是工具的长度,高度和其他特征值。

这是我为了演示目的而创建一个文档的方式。有一个动态生成的价格字段。由于azure搜索需要每个索引都有一个强大的固定模式。我在索引过程中更新模式。这工作得很好。

Price Field

所以现在的问题是如何能够做到与蔚蓝的搜索所需要的功能?

在弹性搜索中,可以通过使用Aggregations来解决此类问题。此功能是否存在于Azure搜索中?

+0

虽然我没有给你一个答案,我可以告诉你,聚合不是在Azure中搜索支持的。见这里(https://feedback.azure.com/forums/263029-azure-search/suggestions/8382225-add-aggregations-functionality) – Kolichikov

回答

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; 
} 

参考:Build a filter for a range

+0

只为过滤操作,这是正确的,但我正在寻找一种方法来获得请求实际范围构面时的最小值和最大值 – Sneijder

相关问题