Since you are reading this post I assume that you already know about Oracle Endeca Dimensions. If not please visit Oracle Endeca Core Concepts and Terms post.
What is Dimension Group?
Dimension Group (com.endeca.navigation.DimGroup) is an immutable object used to group a collection of related Dimensions. (com.endeca.navigation.Dimension) Dimension Group is used to present a set of dimensions under a logical entity. Take the example of discover electronic application, dimensions like camera.color, camera.flash and camera.aspect_ratio are grouped under product_features dimension group. If a dimension is not put under an explicit dimension group then it would fall under the implicit dimension group. An implicit dimension group doesn’t have an id or name.
Screenshot from Oracle Endeca Discover Electronics reference application.
Mind map of Dimension Group, Dimension and Dimension Values relationship.
How to find Dimension Groups using Presentation API?
1 2 3 4 |
final DimGroupList dimGroupList = eneQueryResults.getNavigation().getCompleteDimGroups(); for(final Object element : dimGroupList){ final DimGroup dimGroup = (DimGroup) element; } |
Sample program to find the Dimension Group using Presentation API.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
package com.ourownjava.endeca.presentation; import com.endeca.navigation.DimGroup; import com.endeca.navigation.DimGroupList; import com.endeca.navigation.DimValIdList; import com.endeca.navigation.Dimension; import com.endeca.navigation.DimensionList; import com.endeca.navigation.ENEConnection; import com.endeca.navigation.ENEQuery; import com.endeca.navigation.ENEQueryException; import com.endeca.navigation.ENEQueryResults; import com.endeca.navigation.HttpENEConnection; /** * * @author ourownjava.com * */ public class NavigationSearchClient { private static final String MDEX_HOST = "localhost"; private static final Integer MDEX_PORT = 15000; /** * @param args * @throws ENEQueryException */ public static void main(final String[] args) throws ENEQueryException { final ENEQueryResults results = createConnection().query(createNavigationQuery("0")); final DimGroupList dimGroupList = results.getNavigation().getCompleteDimGroups(); for(final Object element : dimGroupList){ final DimGroup dimGroup = (DimGroup) element; System.out.println(dimGroup.getId()); System.out.println(dimGroup.getName()); } } private static ENEQuery createNavigationQuery(final String nValue) { final ENEQuery query = new ENEQuery(); final DimValIdList dimValIdList = new DimValIdList(nValue); query.setNavDescriptors(dimValIdList); query.setNavNumERecs(100); return query; } /** * @return */ private static ENEConnection createConnection() { return new HttpENEConnection(MDEX_HOST, MDEX_PORT); } } |
what is “final DimValIdList dimValIdList = new DimValIdList(nValue)” mean?