Endeca необходимо вернуть все свои значения в одном измерении

Мне нужно вернуть все значения в одном измерении (например, Product.category) в Endeca и вернуть все его значения в виде объекта JSON сборщику контента. Может ли кто-нибудь предоставить оптимальный способ достижения этой функции?


person user2311631    schedule 30.12.2014    source источник
comment
Не совсем уверен, что вы спрашиваете, вы хотите вернуть значения ассемблеру или получить их. Просьба уточнить.   -  person Wiszh    schedule 31.12.2014


Ответы (1)


Это сложный вопрос, особенно потому, что я предполагаю, что product.category является иерархическим измерением.

С помощью обычного навигационного запроса (например, страницы результатов поиска) невозможно одновременно вернуть все уровни иерархического измерения. Однако, используя поиск по измерению (и если параметр --compoundDimSearch отключен), вы можете сделать такой запрос: D=*&Dn=0&Di=10001 (где 10001 может быть идентификатором измерения для product.category).

Это вернет каждое значение в измерении.

Что вы могли бы сделать, так это, возможно, сделать/расширить обработчик 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, эти результаты также будут возвращены.

Одно большое предостережение: приведенные выше результаты не очень хорошо отформатированы. Я имею в виду, что это вернет каждое значение листа и его предков. Если вы хотите создать красивое иерархическое отображение, вам придется самостоятельно выполнить кучу форматирования.

person GregEschbacher    schedule 12.01.2015