2017-09-20 214 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

相關問題