2014-12-30 4 views
0

Endeca의 모든 차원 (예 : Product.category)에서 모든 값을 반환하고 모든 값을 JSON 객체로 콘텐츠 어셈블러에 반환해야합니다. 누군가이 기능을 구현하는 최적의 방법을 제공 할 수 있습니까?Endeca가 한 차원 아래의 모든 값을 반환해야합니다.

+0

당신이 무엇을 요구하고 있는지 확실하지 않은 경우, 값을 어셈블러에 반환하거나 꺼내고 싶습니다. 명확히하십시오. – Wiszh

답변

2

이것은 특히 까다 롭습니다. product.category가 계층 적 차원이라고 가정하기 때문에 특히 그렇습니다.

일반적인 탐색 쿼리 (예 : 검색 결과 페이지)를 사용하면 계층 적 차원의 모든 수준을 한 번에 되돌릴 수 없습니다. D = * & Dn = 0 & Di = 10001 (여기서 10001은 product.category의 차원 ID 일 수 있음) Dimension 검색을 사용하여 --compoundDimSearch가 꺼져 있으면 다음과 같은 쿼리를 만들 수 있습니다. .

그러면 치수의 모든 값을 다시 가져옵니다.

DimensionSearchResultsHandler를 만들거나 연장하면 도움이됩니다. preprocess() 메서드에서 위와 같은 쿼리를 생성합니다. 당신은 결과에 대한 어셈블러 오브젝트를 구축 할 수 있도록 도와드립니다

 ENEQueryResults results = executeMdexRequest(mMdexRequest); 
     NavigationState navigationState = getNavigationState(); 
     navigationState.inform(results); 

     DimensionSearchResults dimensionSearchResults = new DimensionSearchResults(cartridgeConfig); 
     DimensionSearchResultsBuilder.build(
       getActionPathProvider(), 
       dimensionSearchResults, 
       navigationState, 
       results.getDimensionSearch(), 
       cartridgeConfig.getDimensionList(), 
       cartridgeConfig.getMaxResults(), 
       cartridgeConfig.isShowCountsEnabled()); 

     return dimensionSearchResults; 

:

그런 다음 처리 방법, 당신은 뭔가를 할 것입니다. 그런 다음 JSON을 반환하는 Assembler 쿼리를 만든 경우 이러한 결과도 반환됩니다.

큰주의 사항 : 위의 결과는 멋지게 형식화되지 않았습니다. 이것이 의미하는 바는 모든 잎 값과 그 조상을 다시 가져올 것이라는 것입니다. 멋진 계층 적 디스플레이를 만들고 싶다면 자신 만의 포맷을해야합니다.