Wednesday, January 14, 2015

WebSphere Commerce Search NullPointerException and Root Causes

You may see NullPointerException in Search server log when there are configuration problem.

The following is a list of the problems I have had so far:

1. wc-search.xml configuration problem:

If you did a APAR update or similar, the wc-search.xml in the com.ibm.comerce.catalog-ext maybe modified after the setupsearchindex.sh was executed

    <_config:server name="AdvancedConfiguration">
        <_config:common-http URL="http://localhost:10080/solr"
            allowCompression="true" connectionTimeout="15000"
            defaultMaxConnectionsPerHost="600" followRedirects="false"
            maxRetries="1" maxTotalConnections="600"
            reference="com.ibm.commerce.foundation.server.services.search.url"
            retryTimeInterval="1000" soTimeout="15000"/>
    </_config:server>
    <_config:cores>
        <_config:core catalog="11101" indexName="CatalogEntry"
            language="en_US" name="MC_11101_CatalogEntry_en_US"
            path="/MC_11101/en_US/CatalogEntry" serverName="BasicConfiguration"/>

then the serverName above does not match the one set in the _config:server, IBM code will throw a NullPointerException:

[1/14/15 11:48:27:150 PST] 000000b7 AbstractBaseR E com.ibm.commerce.foundation.rest.resourcehandler.AbstractBaseResourceHandler handleException(String, Exception, String) Caught unexpected exception, error is: {errors=[{errorCode=CWXFR0230E, errorKey=ERR_INTERNAL_SERVER_ERROR, errorLevel=SEVERE, errorMessage=CWXFR0230E: Internal server error. Details will be stored within the server logs.}]}
                                 com.ibm.commerce.foundation.internal.common.exception.FoundationApplicationException: An error has occurred.  If this problem persists, contact product support.
at com.ibm.commerce.foundation.server.services.search.SearchServiceFacade.performSearch(SearchServiceFacade.java:200)
at com.ibm.commerce.rest.search.handler.v2_0.AbstractSearchResourceHandler.executeSearch(AbstractSearchResourceHandler.java:333)
at com.ibm.commerce.rest.search.handler.v2_0.AbstractSearchResourceHandler.performSearch(AbstractSearchResourceHandler.java:165)
at com.ibm.commerce.rest.search.handler.v2_0.CategoryViewHandler.findSubCategories(CategoryViewHandler.java:482)
at com.ibm.commerce.rest.search.handler.v2_0.CategoryViewHandler.findTopCategories(CategoryViewHandler.java:268)
...
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:946)
at com.ibm.commerce.foundation.server.services.rest.search.processor.solr.SolrRESTSearchExpressionProcessor.performSearch(SolrRESTSearchExpressionProcessor.java:467)
at com.ibm.commerce.foundation.server.services.search.SearchServiceFacade.performSearch(SearchServiceFacade.java:193)
... 84 more

2. ibm-web-ext.xml flag setting


If the flag of the enable-file-serving is not set to true in the ibm-web-ext.xml file, and you customized the Search-Solr.war and tries to access files, you may have NullPointerException from Apache Solr package too, since the Apache Solr code fails to retrieve request path from ServletRequest: req.getServletPath()

[1/15/15 9:16:55:431 PST] 00000028 SolrDispatchF E org.apache.solr.common.SolrException log null:java.lang.NullPointerException
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)

/usr/IBM/WebSphere/AppServer/v70/profiles/"instance name"/config/cells/cell01/applications/Search.ear/deployments/Search/Search-Solr.war/WEB-INF/ibm-web-ext.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0">
  <jsp-attribute name="reloadEnabled" value="true"/>
  <jsp-attribute name="reloadInterval" value="10"/>
  <reload-interval value="3"/>
  <enable-directory-browsing value="false"/>
  <enable-file-serving value="true"/>
  <enable-reloading value="false"/>
  <enable-serving-servlets-by-class-name value="false"/>
  <context-root uri="/solr"/>



</web-ext>



Here is a sample of full stack trace:

[2/11/15 17:17:42:268 PST] 0000002b SolrDispatchF E org.apache.solr.common.SolrException log null:java.lang.NullPointerException
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:997)
        at com.ibm.ws.webcontainer.webapp.WebApp.invokeFilters(WebApp.java:4044)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3971)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:945)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1656)

Friday, January 9, 2015

WebSphere Commerce Inventory Indexing Notes

Notes:

The di-proprocess script will do nothing for a full index build, if you check the wc-dataimport-preprocess-fullbuild.xml, the sql="".

In di-buildindex process, the inventory data is retrieved from INVENTORY table directly:

in the wc-data-config.xml file under the ...\IBM\WCDE_ENT70\search\solr\home\MC_10001\generic\CatalogEntry\Inventory\conf\wc-data-config.xml

for ItemBean:

SELECT 
    INVENTORY.CATENTRY_ID, 
    INVENTORY.STORE_ID, 
    INVENTORY.FFMCENTER_ID, 
    INVENTORY.QUANTITY
FROM INVENTORY
WHERE INVENTORY.QUANTITYMEASURE = 'C62' -- This is an ISO standard UOM: 1
AND INVENTORY.CATENTRY_ID IN (
    SELECT CATENTRY.CATENTRY_ID
    FROM CATENTRY, CATGPENREL
    WHERE CATGPENREL.CATALOG_ID = 10001
    AND CATENTRY.MARKFORDELETE = 0
    AND CATENTRY.CATENTRY_ID = CATGPENREL.CATENTRY_ID
    AND CATENTRY.CATENTTYPE_ID = 'ItemBean')
ORDER BY INVENTORY.CATENTRY_ID, INVENTORY.STORE_ID, INVENTORY.FFMCENTER_ID

for ProductBean:

SELECT 
    CATENTREL.CATENTRY_ID_
    PARENT CATENTRY_ID, 
    INVENTORY.STORE_ID, 
    INVENTORY.FFMCENTER_ID, 
    SUM(INVENTORY.QUANTITY) TOTAL_QUANTITY
FROM INVENTORY, CATENTRY, CATENTREL, CATGPENREL
WHERE CATGPENREL.CATALOG_ID = 10001
AND CATENTRY.CATENTRY_ID = CATGPENREL.CATENTRY_ID
AND CATENTRY.CATENTRY_ID = CATENTREL.CATENTRY_ID_CHILD
AND INVENTORY.QUANTITYMEASURE = 'C62'
AND CATENTRY.CATENTTYPE_ID = 'ItemBean'
AND CATENTREL.CATENTRY_ID_CHILD = INVENTORY.CATENTRY_ID
GROUP BY CATENTREL.CATENTRY_ID_PARENT, INVENTORY.STORE_ID, INVENTORY.FFMCENTER_ID
ORDER BY CATENTREL.CATENTRY_ID_PARENT, INVENTORY.STORE_ID, INVENTORY.FFMCENTER_ID

WebSphere Commerce Search Test URLs

Solr Search Engine

Solr Admin Console

http://localhost:8080/solr/admin.html#/

Default Core

http://localhost:8080/solr/Default/select?q=*%3A*

Category, Catalog Entry and Inventory Cores

http://localhost:8080/solr/MC_10001_CatalogEntry_en_US/select?q=*%3A*
http://localhost:8080/solr/MC_10001_CatalogGroup_en_US/select?q=*%3A*
http://localhost:8080/solr/MC_10001_CatalogEntry_Inventory_generic/select?q=*%3A*

Solr Rest Search APIs

Category View

http://localhost:8080/search/resources/store/10053/categoryview/@top?catalogId=10001&langId=-1&currency=USD&responseFormat=json&depthAndLimit=-1,-1,0

Product View

http://localhost:8080/search/resources/store/10053/productview/bySearchTerm/water?catalogId=10001&langId=-1&currency=USD&responseFormat=json&pageSize=20&pageNumber=1&depthAndLimit=*&profileName=IBM_findProductsBySearchTerm

Tuesday, January 6, 2015

WebSphere Commerce Solr Admin Console and Debugging and Monitoring Tools

Original IBM Link

Steps to enable Solr Admin Console:
  1. Import the Search_eardir/Search-Solr.war project into your workspace.
  2. Copy the following directories and files from the downloaded Solr.war file into the Search-Solr/WebContent directory:
    • css
    • img
    • js
    • tpl
    • admin.html
    • favicon.ico
  3. Open the Search-Solr/WebContent/WEB-INF/ibm-web-ext.xml file for editing. (Note: in a production environment, the file that should be modified is in the following location: .../IBM/WebSphere/AppServer/v70/profiles/${profile}/config/cells/cell01/applications/Search.ear/deployments/${instance}/Search-Solr.war/WEB-INF/ibm-web-ext.xml, NOT the one in this location: .../IBM/WebSphere/AppServer/v70/profiles/{profile}/installedApps/${cell}/Search.ear/Search-Solr.war/WEB-INF/ibm-web-ext.xml 
  4. Find the enable-file-serving flag and set it to true.
    For example, in bold:
    <web-ext
       xmlns="http://websphere.ibm.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
       version="1.0">
    
       <reload-interval value="3"/>
       <context-root uri="/solr" />
       <enable-directory-browsing value="false"/>
       <enable-file-serving value="true"/>
       <enable-reloading value="false"/>
       <enable-serving-servlets-by-class-name value="false" />
    
    </web-ext>
  5. Save your changes and close the file.
  6. Deploy the Search-Solr project; Right-click the project and select Java EE > Prepare for Deployment.
  7. Update the following files:
    • (Developer)Search-Solr.war/WEB-INF/web.xml
    • Search-Solr.war/WEB-INF/web.xml
    • Solr_cell/applications/solr.ear/deployments/solr/Search-Solr.war/WEB-INF/web.xml
  8. Change the URL pattern for the SolrSearchServlet servlet:
    • (FEP7)Change it to /Search-Solr
    • (FEP8)Change it to /solr
    For example:                                                                                   (FEP7) (Note: I used the /solr as FEP8 and it works)
    <servlet-mapping>
         <servlet-name>SolrSearchServlet</servlet-name>
           <url-pattern>/Search-Solr</url-pattern>
    </servlet-mapping>
    (FEP8)
    <servlet-mapping>
         <servlet-name>SolrSearchServlet</servlet-name>
           <url-pattern>/solr</url-pattern>
    </servlet-mapping>
  9. Save your changes and close the files.
  10. Publish the search EAR.
  11. Use the following URL to access the Solr administrative interface:
    • (FEP7)http://localhost/Search-Solr/admin.html
    • (FEP8)http://hostname:3737/solr/admin.html
For more information, see SolrAdminGUI.
Lucene Index Toolbox (Luke)
Luke is a development and diagnostic tool for search indexes. It enables you to display and modify search index content. For more information, seeLuke - Lucene Index Toolbox.
WebSphere Application Server JMX clients
JMX clients can read runtime statistics from Solr.
To set up the client:
  1. Add the JMX registry in the Solr core configuration file, solrconfig.xml:
    <jmx serviceURL="service:jmx:iiop://host_name:2809/jndi/JMXConnector"/>
  2. Use jconsole in Rational Application Developer to connect to the runtime JMX.
    When the Solr core is initialized, you can use jconsole to view information from JMX, such as statistics information for caches.
For more information, see SolrJmx.

Note:

1. If you don't set the 
<enable-file-serving value="true"/>
as instructed in step 4 (remember the location is: 
.../IBM/WebSphere/AppServer/v70/profiles/${profile}/config/cells/cell01/applications/Search.ear/deployments/${instance}/Search-Solr.war/WEB-INF/ibm-web-ext.xml) , you may get this exception:

[1/1/15 12:00:00:000 PST] 0000003d SolrDispatchF E org.apache.solr.common.SolrException log null:java.lang.NullPointerException at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:186)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:997)
at com.ibm.ws.webcontainer.webapp.WebApp.invokeFilters(WebApp.java:4044)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3971)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:945)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1660)



2. If you would like to let the web app handle some static pages, you may add the following to the web.xml file (again, find the right location in the config directory):

        <servlet>
                <servlet-name>FileServlet</servlet-name>
                <servlet-class>com.ibm.ws.webcontainer.servlet.SimpleFileServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name>FileServlet</servlet-name>
                <url-pattern>hello.html</url-pattern>
        </servlet-mapping>

Monday, January 5, 2015

WebSphere Commerce Search Server Web Content Access Control File in a Clustered Environment




The file that is used is in the following location:

/usr/IBM/WebSphere/AppServer/v70/profiles/"instance name"/config/cells/cell01/applications/Search.ear/deployments/Search/Search-Solr.war/WEB-INF/ibm-web-ext.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-ext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" version="1.0">
  <jsp-attribute name="reloadEnabled" value="true"/>
  <jsp-attribute name="reloadInterval" value="10"/>
  <reload-interval value="3"/>
  <enable-directory-browsing value="false"/>
  <enable-file-serving value="true"/>
  <enable-reloading value="false"/>
  <enable-serving-servlets-by-class-name value="false"/>
  <context-root uri="/solr"/>

</web-ext>

Checking WebSphere Commerce Search Server Configuration

Sometimes there is a need to retrieve the search server configuration information from a live server to validate the search configurations, here is a class could be used to do that:

The information displayed is retrieved from the following configuration files:

In Search project:
xml/config/com.ibm.commerce.catalog.ext/wc-search.xml
xml/config/com.ibm.commerce.catalog/wc-search.xml

public class SearchServerConfigInfo {

    public static String getAllSearchServerConfigsInfo() {
        final SolrSearchConfigurationRegistry catalogReg = SolrSearchConfigurationRegistry
                .getInstance("com.ibm.commerce.catalog");
        final Field f;
        final StringBuilder result = new StringBuilder();
        try {
            f = SolrSearchConfigurationRegistry.class.getDeclaredField("imapSolrSearchServerConfigByCoreName");
            f.setAccessible(true);
            final Map<String, SolrSearchServerConfig> coreSearchServerConfigMap = (Map<String, SolrSearchServerConfig>) f
                    .get(catalogReg);
            final Set<String> coreNames = coreSearchServerConfigMap.keySet();
            SolrSearchServerConfig searchConf;
            result.append("\n=== === ===\nSearch Configuration:\n--- --- ---\n");
            for (String coreName : coreNames) {
                searchConf = catalogReg.getSolrSearchServerConfiguration(coreName);

                if (searchConf != null) {
                    result.append("coreName:").append(coreName).append('\n');
                    String corePath = catalogReg.getCorePath(coreName);
                    result.append("corePath:").append(corePath).append('\n');
                    String masterCatalog = catalogReg.getMasterCatalog(coreName);
                    result.append("masterCatalog:").append(masterCatalog).append('\n');
                    String languageId = catalogReg.getLanguageId(coreName);
                    result.append("languageId:").append(languageId).append('\n');
                    String name = searchConf.getName();
                    result.append("name:").append(name).append('\n');

                    Map<String, String> searchServerConfMap = searchConf.getConfigParameters();
                    Set keys = searchServerConfMap.keySet();
                    result.append("parameters:[");
                    for (Object keyObject : keys) {
                        String key = (String) keyObject;
                        result.append("key=").append(key).append(',');
                        String val = searchServerConfMap.get(key);
                        result.append("value=").append(val).append(';');
                    }
                    result.append("]\n");

                    boolean isEmbeddedServer = searchConf.isEmbeddedServer();
                    result.append("isEmbeddedServer:").append(isEmbeddedServer).append('\n');

                    SolrSearchServerConfig.CommonHttpServerConfig httpServerConf = searchConf
                            .getCommonHttpServerConfig();
                    String url = httpServerConf.getURL();
                    result.append("url:").append(url).append('\n');

                    String reference = httpServerConf.getReference();
                    result.append("reference").append(reference).append('\n');
                }
                result.append("--- --- ---\n");
            }
        } catch (Exception e) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
            result.append("\nSearch configuration was not able to be retrieved. Exception stack trace:\n");
            result.append(sw.toString());
        }
        return result.toString();
    }
}



The result:

=== === ===
Search Configuration:
--- --- ---
coreName:MC_11101_CatalogEntry_Unstructured_en_US
corePath:/MC_11101/en_US/CatalogEntry/unstructured
masterCatalog:11101
languageId:-1
name:AdvancedConfiguration
parameters:[]
isEmbeddedServer:false
url:http://localhost:10080/solr
referencecom.ibm.commerce.foundation.server.services.search.url
--- --- ---
coreName:MC_11101_CatalogGroup_en_US
corePath:/MC_11101/en_US/CatalogGroup
masterCatalog:11101
languageId:-1
name:AdvancedConfiguration
parameters:[]
isEmbeddedServer:false
url:http://localhost:10080/solr
referencecom.ibm.commerce.foundation.server.services.search.url
--- --- ---
coreName:MC_11101_CatalogEntry_Inventory_generic
corePath:/MC_11101/generic/CatalogEntry/Inventory
masterCatalog:10751
languageId:-1
name:AdvancedConfiguration
parameters:[]
isEmbeddedServer:false
url:http://localhost:10080/solr
referencecom.ibm.commerce.foundation.server.services.search.url
--- --- ---
coreName:MC_11101_CatalogEntry_en_US
corePath:/MC_11101/en_US/CatalogEntry
masterCatalog:11101
languageId:-1
name:AdvancedConfiguration
parameters:[]
isEmbeddedServer:false
url:http://localhost:10080/solr
referencecom.ibm.commerce.foundation.server.services.search.url
--- --- ---

Retrieving Search Profiles from WebSphere Commerce Search Server

Sometimes there is a need to retrieve the search profile information from a live server to verify the search configurations, here is a class could be used to do that:

The information displayed is retrieved from the following configuration files:

In Search project:
xml/config/com.ibm.commerce.catalog.ext/wc-search.xml
xml/config/com.ibm.commerce.catalog/wc-search.xml

In Search-Rest project:
WEB-INF/config/com.ibm.commerce.rest-ext/wc-rest-resourceconfig.xml
WEB-INF/config/com.ibm.commerce.rest/wc-rest-resourceconfig.xml

public class SearchProfileInfo {
    public static String getAllProfilesInfo() {
        final ResourceConfigManager resourceConfigManager = ResourceConfigManager.getInstance();
        final Field aField;
        final Map<String, Map<String, Object>> coreResourceMap;
        final StringBuilder result = new StringBuilder();
        try {
            aField = ResourceConfigManager.class.getDeclaredField("searchProfileMappings");
            aField.setAccessible(true);
            coreResourceMap = (Map<String, Map<String, Object>>) aField.get(resourceConfigManager);
            final Set<String> coreNames = coreResourceMap.keySet();
            result.append("\n=== === ===\nSearch Profiles:\n--- --- ---\n");
            for (String coreName : coreNames) {
                Map<String, Object> resourceMap = coreResourceMap.get(coreName);
                Set<String> resourceUrls = resourceMap.keySet();
                for (String path : resourceUrls) {
                    String profileName = resourceConfigManager.getSearchProfile(coreName, path);
                    result.append("coreName:").append(coreName).append('\n');
                    result.append("urlPattern:").append(path).append('\n');
                    result.append("profileName:").append(profileName).append('\n');

                    SolrSearchProfileConfig profileConfig = SolrSearchConfigurationRegistry.getInstance()
                            .getSolrSearchProfileConfiguration(profileName);
                    result.append("profileDetails:").append(profileConfig.toString()).append('\n');
                }
                result.append("--- --- ---\n");
            }
        } catch (Exception e) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
            result.append("\nSearch Profiles were not able to be retrieved. Exception stack trace:\n");
            result.append(sw.toString());
        }
        return result.toString();
    }
}

Result:

=== === ===
Search Profiles:
--- --- ---
coreName:sitecontent
urlPattern:categorySuggestions
profileName:IBM_findNavigationSuggestion_Categories
profileDetails:[name:IBM_findNavigationSuggestion_Categories, parent:null, index:CatalogGroup, parameters:{maxRows=500}, query:[inherits:true, parameters:{maxRows=500}, fields:{}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCustomExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCategorySuggestionQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:[inherits:true, parameters:{}, fields:{1=name_ntk_cs asc}], group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:sitecontent
urlPattern:store/{storeId}/sitecontent/webContentsBySearchTerm/{searchTerm}
profileName:IBM_findWebContentsBySearchTerm
profileDetails:[name:IBM_findWebContentsBySearchTerm, parent:null, index:UnstructuredContent, parameters:{limit=5, maxRows=100}, query:[inherits:true, parameters:{maxRows=100}, fields:{tika_content=, name=, longdesc=, shortdesc=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchTermAssociationExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByKeywordRelevancyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCustomExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchWebContentStoreInfoExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainWebContentViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:[inherits:true, pre:, post:, parameters:{}, fields:{}], facet:[inherits:true, min:null, limit:null, sort:null, parameters:{}, converters:{}, category:{}], sort:[inherits:false, parameters:{}, fields:{1=name_ntk_cs asc, 2=mimetype asc}], group:null, heroproduct:null, spell:[inherits:true, parameters:{limit=5}], mapping:[inherits:true, parameters:{}], suggestion:null]
coreName:sitecontent
urlPattern:store/{storeId}/sitecontent/categorySuggestions
profileName:IBM_findNavigationSuggestion_Categories
profileDetails:[name:IBM_findNavigationSuggestion_Categories, parent:null, index:CatalogGroup, parameters:{maxRows=500}, query:[inherits:true, parameters:{maxRows=500}, fields:{}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCustomExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCategorySuggestionQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:[inherits:true, parameters:{}, fields:{1=name_ntk_cs asc}], group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:sitecontent
urlPattern:webContentsBySearchTerm/{searchTerm}
profileName:IBM_findWebContentsBySearchTerm
profileDetails:[name:IBM_findWebContentsBySearchTerm, parent:null, index:UnstructuredContent, parameters:{limit=5, maxRows=100}, query:[inherits:true, parameters:{maxRows=100}, fields:{tika_content=, name=, longdesc=, shortdesc=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchTermAssociationExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByKeywordRelevancyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCustomExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchWebContentStoreInfoExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainWebContentViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:[inherits:true, pre:, post:, parameters:{}, fields:{}], facet:[inherits:true, min:null, limit:null, sort:null, parameters:{}, converters:{}, category:{}], sort:[inherits:false, parameters:{}, fields:{1=name_ntk_cs asc, 2=mimetype asc}], group:null, heroproduct:null, spell:[inherits:true, parameters:{limit=5}], mapping:[inherits:true, parameters:{}], suggestion:null]
coreName:sitecontent
urlPattern:store/{storeId}/sitecontent/brandSuggestions
profileName:IBM_findNavigationSuggestion_Brands
profileDetails:[name:IBM_findNavigationSuggestion_Brands, parent:null, index:CatalogEntry, parameters:{searchType=12, limit=100, minCount=1, maxRows=0, sort=index}, query:[inherits:true, parameters:{searchType=12, maxRows=0}, fields:{}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCategoryExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCustomExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchTypeExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchProductEntitlementExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchBrandSuggestionQueryPostprocessor], postprocessors(disabled):null], result:null, highlight:null, facet:[inherits:true, min:null, limit:null, sort:null, parameters:{limit=100, minCount=1, sort=index}, converters:{}, category:{}], sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:sitecontent
urlPattern:brandSuggestions
profileName:IBM_findNavigationSuggestion_Brands
profileDetails:[name:IBM_findNavigationSuggestion_Brands, parent:null, index:CatalogEntry, parameters:{searchType=12, limit=100, minCount=1, maxRows=0, sort=index}, query:[inherits:true, parameters:{searchType=12, maxRows=0}, fields:{}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCategoryExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCustomExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchTypeExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchProductEntitlementExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchBrandSuggestionQueryPostprocessor], postprocessors(disabled):null], result:null, highlight:null, facet:[inherits:true, min:null, limit:null, sort:null, parameters:{limit=100, minCount=1, sort=index}, converters:{}, category:{}], sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
--- --- ---
coreName:categoryview
urlPattern:store/{storeId}/categoryview/@top
profileName:IBM_findSubCategories
profileDetails:[name:IBM_findSubCategories, parent:null, index:CatalogGroup, parameters:{}, query:[inherits:true, parameters:{}, fields:{parentCatgroup_id_facet=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchShallowCategoryExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategorySequencingExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:byIds
profileName:IBM_findCategoryByUniqueIds
profileDetails:[name:IBM_findCategoryByUniqueIds, parent:null, index:CatalogGroup, parameters:{maxRows=500}, query:[inherits:true, parameters:{maxRows=500}, fields:{catgroup_id=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByIdentifierExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:store/{storeId}/categoryview/byParentCategory/{parentCategoryId}
profileName:IBM_findSubCategories
profileDetails:[name:IBM_findSubCategories, parent:null, index:CatalogGroup, parameters:{}, query:[inherits:true, parameters:{}, fields:{parentCatgroup_id_facet=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchShallowCategoryExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategorySequencingExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:@top
profileName:IBM_findSubCategories
profileDetails:[name:IBM_findSubCategories, parent:null, index:CatalogGroup, parameters:{}, query:[inherits:true, parameters:{}, fields:{parentCatgroup_id_facet=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchShallowCategoryExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategorySequencingExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:store/{storeId}/categoryview/byIds
profileName:IBM_findCategoryByUniqueIds
profileDetails:[name:IBM_findCategoryByUniqueIds, parent:null, index:CatalogGroup, parameters:{maxRows=500}, query:[inherits:true, parameters:{maxRows=500}, fields:{catgroup_id=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByIdentifierExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:byId/{categoryId}
profileName:IBM_findCategoryByUniqueIds
profileDetails:[name:IBM_findCategoryByUniqueIds, parent:null, index:CatalogGroup, parameters:{maxRows=500}, query:[inherits:true, parameters:{maxRows=500}, fields:{catgroup_id=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByIdentifierExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:store/{storeId}/categoryview/{categoryIdentifier}
profileName:IBM_findCategoryByIdentifier
profileDetails:[name:IBM_findCategoryByIdentifier, parent:null, index:CatalogGroup, parameters:{}, query:[inherits:true, parameters:{}, fields:{identifier_ntk=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByIdentifierExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:store/{storeId}/categoryview/byId/{categoryId}
profileName:IBM_findCategoryByUniqueIds
profileDetails:[name:IBM_findCategoryByUniqueIds, parent:null, index:CatalogGroup, parameters:{maxRows=500}, query:[inherits:true, parameters:{maxRows=500}, fields:{catgroup_id=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByIdentifierExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:{categoryIdentifier}
profileName:IBM_findCategoryByIdentifier
profileDetails:[name:IBM_findCategoryByIdentifier, parent:null, index:CatalogGroup, parameters:{}, query:[inherits:true, parameters:{}, fields:{identifier_ntk=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByCatalogExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByIdentifierExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
coreName:categoryview
urlPattern:byParentCategory/{parentCategoryId}
profileName:IBM_findSubCategories
profileDetails:[name:IBM_findSubCategories, parent:null, index:CatalogGroup, parameters:{}, query:[inherits:true, parameters:{}, fields:{parentCatgroup_id_facet=}, providers:[com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategoryEntitlementExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByStorePathExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchShallowCategoryExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchByPublishedEntryOnlyExpressionProvider, com.ibm.commerce.foundation.server.services.rest.search.expression.solr.SolrRESTSearchCategorySequencingExpressionProvider], providers(disabled):null, preprocessors:null, preprocessors(disabled):null, postprocessors:[com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchChildCategoryEntitlementQueryPostprocessor, com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTMainCatalogGroupViewResultQueryPostprocessor], postprocessors(disabled):null], result:[inherits:true, fields:{}, filters:null, filters(disabled):null], highlight:null, facet:null, sort:null, group:null, heroproduct:null, spell:null, mapping:null, suggestion:null]
--- --- ---
...