2017-09-20 7 views
7

현재 Azure Search SDK를 시험 중입니다. lucenebobobrowse으로 작업하는 강력한 배경을 가진 Azure Search는 환상적이며 두 프레임 워크의 많은 기능을 기본적으로 제공합니다.Azure 검색 : 가격 범위 - 최소값 및 최대 값 계산

제가 당황하게하는 유일한 사실은 수치면 항목의 최소값과 최대 값을 얻는 것입니다. 의도에 의해, 나는 interval parameter이나 value lists를 사용하지 않으 :

Azure Facet Navigation

내 요구 사항은 계산 된 최소 및 최대 값으로 가격면을 표시하는 것입니다. 다음 웹 사이트는 자신의 패싯 목록에 같은면이 있습니다 기존 데스크톱 응용 프로그램 (.NET) 나는 성공적으로 BoboBrowse 프레임 워크를 사용하여 다음 그림에 표시됩니다 원하는 결과를 얻기 위해 Custom-FacetHandler 구현에

Price Range

아래 :

MultiValue Facet Handler Result

은이 사진에서 패싯 값을 신경 쓰지 마십시오. 이것들은 도구의 길이, 높이 및 기타 특성 값입니다.

데모 용으로 하나의 문서를 만드는 방법입니다. 동적으로 생성되는 가격 필드가 있습니다. 푸른 검색 때문에 모든 색인에 강력하게 고정 된 스키마가 필요합니다. 인덱싱 프로세스 내에서 스키마를 업데이트합니다. 이것은 아주 잘 작동합니다.

Price Field

그래서 문제는 내가 푸른 검색하여 필요한 기능을 수행 할 수있는 방법인가?

탄성 검색에서 이러한 문제는 Aggregations을 사용하여 해결할 수 있습니다. 이 기능은 Azure Search에 있습니까?

+0

, 나는 집계가 푸른 검색에서 지원되지 않는 사실을 알 수 있습니다. 여기를 참조하십시오 (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