Tuesday, June 2, 2020

Endeca/Search Education series

Hello Everyone, I have started you tube video channel to provide the online Endeca and other search solutions related education series. ... thumbnail 1 summary
  • Hello Everyone,

    I have started you tube video channel to provide the online Endeca and other search solutions related education series.

    Here is my channel link and please like and subscribe.

    https://www.youtube.com/channel/UCmgsmntcvZ-IQGMt_7feIKQ


    Friday, May 29, 2020

    how to enable ancestor matches during record search for Hierarchical Dimension?

    Search interface is generally used to do record search and searchable attributes needs to be added. In a ATG/Endeca integration, By Defaul... thumbnail 1 summary
  • Search interface is generally used to do record search and searchable attributes needs to be added.

    In a ATG/Endeca integration, By Default product.category dimension is searchable but match against all ancestors of a hierarchical dimension is disabled.

    For example, if "Women > shoes" and "Men > Clothing >Jeans" are product.category values for a product 'Product-123', searching with term "shoes" and "jeans" returns the product 'Product-123'  but searching with the term "women" , "Clothing" and "Mens" does not return the product 'Product-123'.  The business needs the Product-123 record to be returned for all the record search terms :  Women , Clothing, Men, Jeans and Shoes ancestor values in the hierarchical dimension.

    This can be enabled in two ways for 11.x CAS based indexing:-

    1. Update CRS.recsearch_indexes.xml xml under Endeca_app/config/mdex and update as below :-

      <RECSEARCH_INDEX NAME="product.category" RECSEARCH_HIERARCHY="TRUE">
        <SEARCH_INDEX/>
      </RECSEARCH_INDEX>

    2. AllAncestor.diaplyName propety contains complete hierarchy of attributes but this property is not searchable OOTB. Make it searchable using product-sku-output-config.xml.

    Note : For Forge based Indexing, above file available under /config/pipeline folder


    Above functioanly can be tested using DGraph.WhyMatch flag in endeca jsp ref.

    Endeca Experience Manager Rule - What happens when Auto correction happened for search term?

    Spelling Correction operates by computing alternate spellings for user query terms, evaluating the likelihood that these alternate spelling... thumbnail 1 summary
  • Spelling Correction operates by computing alternate spellings for user query terms, evaluating the likelihood that these alternate spellings are the best interpretation, and then using the best alternate spell-corrected query forms to return extra search results.

    For example, a user might search for records containing the text "Dressas". With spelling correction enabled, the Endeca MDEX Engine will return the expected results: those containing the text "Dresses".


    What happens if auto correction happens during keyword search :-

    1. Suppose, we create a rule in Endeca experience manager with Location search term "dresses".
    2. User enters a search term as "dressas".
    3. For First keyword, "dressas" would auto corrected to "dresses".
    4. Rule created as part of step 1 would be triggered if the user searches for "dresses" or any term that would be auto corrected to "dresses".
    5. Same thing applicable for stemming as well.

    Endeca XM Auto correction Rule based on Location

    how to Troubleshoot performance issue in ATG-Endeca Integration?

    As part of peak load or during load test if following symptoms are seen in ATG-Endeca integration. Out of Memory in store instance. Sto... thumbnail 1 summary
  • As part of peak load or during load test if following symptoms are seen in ATG-Endeca integration.

    1. Out of Memory in store instance.
    2. Store instance takes lots of time to process a request.
    3. Promote content from Endeca takes lots of time to apply
    4. Dgraph CPU usage looks correct and no issue seen in Dgraph instance.
    5. High network I/O in Dgraph instance.



    Troubleshoot`/Debug from Endeca/Assembler side

    1. Get Dgraph request log from all Dgraph instance. Dgraph log can find out under below folder /LLM/logs/dgraphs/<<Dgraph_Name>>/<<Dgraph_Name>>.reqlog.

    2. Run Request log analyzer to see the issue at each Dgraph level. Following parameters needs to be observed from log analyzer output

    • Query Queueing time - See if Thread size is defined correctly for Dgraph
    • Query response delay in Dgraph
      • Get MDEX statistics using http://<Draph_server>:<port>/admin?op=stats.
    • Endeca MDEX Performance Statistics
    • Large Response Size 
      • Unnecessary supplement objects are getting returned from Assembler Cartridge
      • Select clause in ResultsList/Spotlight cartridge not used to get Endeca record object from Dgraph
    Endeca Statistics Large Endeca query response Size


    Click here to see Endeca Query Performance Tuning

    Click here to see Slow Query Response Time

    Click here to see Cartridge select clause implementation


    Troubleshoot/Debug from ATG side

    1.Enable loggingDebug on the following components and try to replicate the issue.

    • /atg/endeca/assembler/AssemblerTools
    • /atg/endeca/assembler/NucleusAssemblerFactory
    • /atg/endeca/assembler/AssemblerPipelineServlet
    2. Enable Performance Monitor in ATG store insatce for some times and collect information to debug it further and turned it off.

    3. Run Top Command to see which process is taking more time.

    4.  See if port 8007 has number of connection due to promote content. This is set as part of /atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource componet.


    From Author

    Was this post resolve the solution you are looking for? am I missing any points that can be added here?
    Provide your comments

    Endeca Search : How to allow users to search within previous search results(Search Within)?

    The search within function enables end users to find specific information within an previous search results. Where search within can be us... thumbnail 1 summary
  • The search within function enables end users to find specific information within an previous search results.

    Where search within can be used

    • Users prefer or expect keyword search refinement to reach specific information results.
    • The body of content is large and keyword search refinement will most likely enable users to quickly find specific results.


    Note :- The search within function can generate no results as well but supports Did you mean and Auto correction as well if required in certain cases.

    Implementation Approach

    There are multiple ways to implement search within. Find out two best possible way as per my understanding

    1. Using multiple Search interface - This can be implemened using multiple search interfaces to search within search results from a previous search in the same query. This is very useful if different set of properites are used to do search within function. This retrun the intersection of both search term results.

    Example :-  Ntt=searchTerm1|searchTerm2&Ntk=searchInterface1|searchInterface2&Ntx=matchmode1|matchmode2

    This will return a set of query results with searchTerm1in searchInterface1with matchmode1 AND searchTerm2 in searchInterface2 with matchmode2 

    This implementation does not return "Did you mean" and "Spelling Correction"


    2. Using One Search interface - Appned new search term into previous search term and send a query to Endeca. Cross field match should be true in this case to get expected serch results.

    Example :-  Ntt=searchTerm1+searchTerm2&Ntk=searchInterface&Ntx=mode+matchall

    Benifits over previous approach

    • This implementation support "Did you mean" and "Spelling Correction" both
    • Easy to manage and implement till Nth level of search within as per attached images on top



    From Author

    Was this post resolve the solution you are looking for? what do you think about this solution?Provide your comments

    Friday, May 8, 2020

    Does Endeca Experience Manager Results List support multiple Boost and Bury conditions?

    Endeca Results List cartridge displays search and navigation results to site users. You can configure it to boost or bury selected records ... thumbnail 1 summary
  • Endeca Results List cartridge displays search and navigation results to site users. You can configure it to boost or bury selected records using experience manager.

    Suppose Business wants to Boost all record based on following criteria

    1. Boost few records based on defined product id key
    2. Show all records within price range between 10-25$ with sale products first
    3. Show all records within price range between 10-25$ with Clearance Products after rule 1
    4. Remaining records

    Endeca OOTB functionality allow business to select only one condition to select boost/bury records in Results List Cartridge. Results list Boost and Bury editor does not allow to put all above four rules to display records out of the box.

    We can leverage the Results list cartridge and customize to support multiple boost and bury condition. Stratify module is used as part of sorting parameter in ENE query to support boost/bury algorithm. 

    Here is how custom cartridge would look like  Endeca Results List Multiple Boost and Bury Editor Customization


    Here is code snippet that needs to used in ResultsList Handler to capture Boost list

    for(XmlContentItem contentItem : contentItems){       
              if(contentItem!=null){
                List<CollectionFilter> collectionFilters = (List<CollectionFilter>)contentItem.get("boostStrata");
                    if (collectionFilters != null)
                    {
                      List<String> listFIlters = new ArrayList<>();
                      boolean propFilterStatus = false;
                      for (Filter boostFilter : collectionFilters)
                       {
                        buf.append(EQLUtil.toEQLString(boostFilter));
                        buf.append(",");
                        if(boostFilter instanceof CollectionFilter){
                          CollectionFilter collectionFilter = (CollectionFilter)boostFilter;
                          Filter innerFilter = collectionFilter.getInnerFilter();
                           if(innerFilter instanceof PropertyFilter){
                            PropertyFilter propFilter = (PropertyFilter)innerFilter;
                            listFIlters.add(propFilter.getName()+":"+propFilter.getValue());
                            propFilterStatus = true;
                           }
                         
                           if(innerFilter instanceof AndFilter){
                             AndFilter andFilter = (AndFilter)innerFilter;
                            List<Filter> operands =  andFilter.getOperands();
                            for(Filter filter : operands){
                               if(filter instanceof DimensionFilter){
                                 DimensionFilter dimFIlter = (DimensionFilter)filter;
                                 listFIlters.add(dimFIlter.getDvalId());
                               }
                            }
                             
                          }
                        }
                     }

    Same logic needs to be calculated for bury Strata as well and needs to append along with Ns Parameter in the Endeca query to support multiple boost and bury scenario.



    Monday, May 4, 2020

    Will Endeca experience manager stop working by end of 2020?

    Endeca Experience manager is powerful merchandiser tool for business provided by oracle commerce to make the site layout/pages updated very... thumbnail 1 summary
  • Endeca Experience manager is powerful merchandiser tool for business provided by oracle commerce to make the site layout/pages updated very quickly with no development required. Endeca XM is tool uses Adobe flash player to add/edit/delete pages/layout in the browser window until version 11.3.1.5.0.

    Adobe flash player has declared a year ago that they are going to end support of flash player by December 31,2020.  Here is the link to see the details from Adobe


    https://helpx.adobe.com/acrobat/kb/flash-format-support-in-pdf.html


    Oracle has recently launched the new minor version 11.3.2 with both full install and a patch install.
    In this release, all remaining Flex has been removed from Oracle Commerce Workbench, including Experience Manager. All of the UIs that had been based on Flex have now been rewritten using Oracle JET.
    Benefits
    1. Oracle JET is a modular, open source toolkit based on up-to-date JavaScript, CSS, and HTML design and development principles
    2. Removes Flex technology, which will soon not be supported.


    All the businesses needs to upgrade to Oracle Endeca 11.3.2 version if they have not done so far before end of year 2020 to continue leverage Endeca Experience manager capabilities.



    Friday, May 1, 2020

    Could Lucidworks fusion prepared to supersede Oracle Endeca search platform?

    Oracle Endeca Guided Search is one of the available options in the market to achieve the search optimization, personalization and SEO benef... thumbnail 1 summary
  • Oracle Endeca Guided Search is one of the available options in the market to achieve the search optimization, personalization and SEO benefits. Oracle Endeca provides configurable and  dynamic merchandizing platform for business users(merchandisers) to change the page/layout/content in few easy steps using experience manager.

    Oracle has started moving the search solutions to cloud and its available as Oracle cloud commerce. Oracle has not added major functionalities on standalone/on-prim Endeca versions since last 2-3 years. Most of retail/e-commerce business are thinking to move their search platform  to Artificial Intelligence/ Machine Learning based platform to provide better personalized contents to end users.

    Now Oracle Endeca fails to meet customer expectations today due to no further roadmaps and looking for new solutions.

    There are such a large number of search platform accessible in the market that can conceivably supersede Endeca. Lucidworks Fusion is one of them and provides cloud/on-prim solutions.

    Lucidworks provide AI-powered search and merchandising applications for some of the world's largest brands. Fusion, Lucidworks advanced development platform, provides the enterprise-grade capabilities needed to design, develop and deploy intelligent search apps at any scale. Lucidworks uses Apache Solr as core search engine for fusion platform.

    Lucidworks has recently introduced predictive merchandiser as part of Fusion 5.1 that has most of similar features as Oracle Endeca Experience manager along with powerful analytics dashboard.

    Lucidworks Fusion is the data discovery platform that gives users contextual, personally relevant search results and proactive recommendations with artificial intelligence that augments their human intelligence.  Here is architecture diagram

    image from Lucidworks.com

    According to my investigation and comprehension, Lucidworks is the right platform to move out from Oracle Endeca and get practically all comparable functionalities like Endeca alongside machine learning and AI powered search.

    More blog will be available soon with detailed comparison with Lucidworks/Endeca/other search platform.

    Note - SEO functionality is not available in Lucidworks.

    Tuesday, May 16, 2017

    Whats New in Oracle Endeca Commerce 11.3?

    Oracle-Commerce Workbench Experience Manager configuration (Template/Cartridges) moved from XML to JSON to support REST service based u... thumbnail 1 summary

    • Oracle-Commerce Workbench
      • Experience Manager configuration (Template/Cartridges) moved from XML to JSON to support REST service based update
      • Removed flash based experience manager to Javascript based 
      • New UI for Cartridge editor and rule list
      • New SDK approach to extend OOTB cartridge editors
      • Improved performance of  XM rules engine loading
      • Removed Rule manager
      • Inline delete option provide for boost and bury editor
    • Oracle-Commerce MDEX engine
      • REST API for search configuration to update configuration
        • Search Interface
        • Thesaurus
        • Redirects
        • Attributes and Dimensions
        • Precedence Rules
        • Record Filtering
      • Enhanced Type ahead functionality

    Wednesday, April 5, 2017

    Endeca 11.2 Preview : Missing deployment settings

    Behaviour :- Following Exception/Error comes in Endeca tools and framework IFCR log during preview page in 11.2 Endeca Experience manager... thumbnail 1 summary
  • Behaviour :-

    Following Exception/Error comes in Endeca tools and framework IFCR log during preview page in 11.2 Endeca Experience manager using preview functionality. 



    02.04.2017 19:46:50.750 *ERROR* [StoreDeploymentWorker] com.endeca.ifcr.deployment.StoreDeploymentWorker Store Deployment service failed for /sites/Discover/ javax.jcr.RepositoryException: javax.jcr.RepositoryException: Missing deployment settings
            at com.endeca.ifcr.deployment.StoreDeploymentWorker.processUpdates(StoreDeploymentWorker.java:397)
            at com.endeca.ifcr.deployment.StoreDeploymentWorker.collectAndProcessUpdates(StoreDeploymentWorker.java:187)
            at com.endeca.ifcr.deployment.StoreDeploymentWorker.run(StoreDeploymentWorker.java:148)
    Caused by: javax.jcr.RepositoryException: Missing deployment settings
            at com.endeca.ifcr.deployment.StoreDeploymentWorker.getApplicationExportPath(StoreDeploymentWorker.java:574)
            at com.endeca.ifcr.deployment.StoreDeploymentWorker.processUpdates(StoreDeploymentWorker.java:252)
            ... 2 more


    Root Cause:-
    The root cause of missing deployment setting is Endeca site content migration from older version of Endeca to 11.2. Migrate site utility does not generate deploymentSettings and reportSettings folder under /configuration/tools folder of exported zip file.

    Solution :-
    Follow the following steps to resolve this
    1. Export the tools using <<Endeca_APp>>/control/runcommand.sh IFCR exportApplication tool
    2. create deploymentSettings folder  under /configuration/tools folder
    3. Create a file _.json file and put the following content
    {
        "ecr:type": "deployment-settings",
        "authoringApplicationExportDirectory": "/opt/app/endeca/ToolsAndFrameworks/11.2.0/deployment_template/lib/../../server/workspace/state/generation_data"

    }
    4. import the tools once again.
    Missing deployment settings Endeca 11.2



    From Author

    Was this post resolve the solution you are looking for? are you looking for some other issues?Provide your comments

    Monday, March 27, 2017

    Endeca 11.x : There was a problem with the zip file given

    Behaviour :- Following Exception/Error comes during baseline or promoting content from Experience Manager. Error shows that " there ... thumbnail 1 summary
  • Behaviour :-

    Following Exception/Error comes during baseline or promoting content from Experience Manager. Error shows that "there was a problem with Zip File given". This exception leads to show blank page in production site


    INFO: [LiveMDEXHostA] Starting component 'DgraphA1'.
    Jan 24, 2017 12:52:14 PM bsh.Reflect invokeMethod
    INFO: Publishing Workbench 'live' configuration to MDEX 'DgraphA1'
    Jan 24, 2017 12:52:14 PM com.endeca.soleng.eac.toolkit.component.cluster.DgraphCluster applyConfigSnapshot
    SEVERE: 'LiveDgraphCluster': there was a problem with the zip file given. Please check the log for further details.An error occurred processing the zip file and preparing the files for processing
    Jan 24, 2017 12:52:14 PM com.endeca.soleng.eac.toolkit.utility.Utility start
    INFO: [LiveMDEXHostA] Starting shell utility 'rmdir_dgraph-input-old'.
    Jan 24, 2017 12:52:15 PM com.endeca.soleng.eac.toolkit.component.cluster.DgraphCluster applyIndex



    Caused by java.lang.reflect.InvocationTargetException
    sun.reflect.NativeMethodAccessorImpl invoke0 - null
    Caused by com.endeca.soleng.eac.toolkit.utility.IFCRUtility$HttpStatusException


    Solution :-
    No New Content was added by business during promote content and zip file was correct. OOTB endeca creates a temporary files under /tmp folder before applying content to MDEX engine and tmp folder was out of space so zero bytes contents was getting applied to MDEX. Free some /temp space and promote content.


    From Author

    Was this post resolve the solution you are looking for? are you looking for some other issues?Provide your comments

    Endeca 11.x : Property 'priority' must be a positive integer

    Behaviour :- Following Exception/Error comes during Endeca experience manager content migration between environments or importing content... thumbnail 1 summary
  • Behaviour :-

    Following Exception/Error comes during Endeca experience manager content migration between environments or importing contents from zip file.


    SEVERE: Caught an exception while invoking method 'importApplication' on object 'IFCR'. Releasing locks.
    java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at com.endeca.soleng.eac.toolkit.Controller.invokeRequestedMethod(Controller.java:931)
            at com.endeca.soleng.eac.toolkit.Controller.execute(Controller.java:269)
            at com.endeca.soleng.eac.toolkit.Controller.main(Controller.java:137)
    Caused by: com.endeca.soleng.eac.toolkit.utility.IFCRUtility$HttpStatusException: Internal Server Error (500): javax.jcr.RepositoryException:

    The following 2 validation failures occurred:
            [/sites/Discover/content/Web/Browse Pages/Boot Page] Property 'priority' must be a positive integer.
            [/sites/Discover/content/Web/Browse Pages/Helmets Page] Property 'priority' must be a positive integer.

            at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.execute(IFCRUtility.java:1016)
            at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.httpPostDoNotConsume(IFCRUtility.java:957)
            at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.httpPost(IFCRUtility.java:929)
            at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.importNode(IFCRUtility.java:686)
            at com.endeca.soleng.eac.toolkit.component.IFCRComponent.importContent(IFCRComponent.java:524)
            at com.endeca.soleng.eac.toolkit.component.IFCRComponent.importApplication(IFCRComponent.java:427)
            ... 7 more


    Solution :-
    Sometimes business user assigns rules priority less than 1 and Endeca XM accepts that value while saving the rule. Above Exception comes if any rule priority is less than 1. Ask business user not to assign rules priority as 0 or any value negative number. Extract the zip file and change the priority in respective JSON file as per error to any positive integer and try importing again.
    Endeca XM Rules Priority with zero Value



    From Author

    Was this post resolve the solution you are looking for? are you looking for some other issues?Provide your comments

    Saturday, March 4, 2017

    ATG-Endeca Integration : How to Enable/Disable automatic indexing after BCC Post Deployment?

    Endeca Indexing jobs getting triggered automatically just after BCC post deployment. IndexingDeploymentListners helps trigger indexing and ... thumbnail 1 summary
  • Endeca Indexing jobs getting triggered automatically just after BCC post deployment. IndexingDeploymentListners helps trigger indexing and part of /atg/epub/DeploymentServer component.

    Enable Automatic Indexing 

    Add IndexingDeploymentListner component to the list of listeners on /atg/epub/DeploymentServer Component. Bydefault,  IndexingDeploymentListner is included.



    Disable Automatic Indexing


    Remove IndexingDeploymentListner component to the list of listeners on /atg/epub/DeploymentServer Component. 




    From Author

    Was this post resolve the solution you are looking for? what do you think about this solution?Provide your comments

    Thursday, March 2, 2017

    ATG Endeca Integration : Interview Questions and Answers- Part2

    ATG Endeca Integrations - Interview Questions - Part-2 1. What are basic components used to Integrate ATG and Endeca? 2. What are Acces... thumbnail 1 summary

  • ATG Endeca Integrations - Interview Questions - Part-2

    1. What are basic components used to Integrate ATG and Endeca?
    2. What are Accessors and how it helps in indexing? 
    3. Can Baseline/Partial Indexing triggered from ATG?
    4. Can attribute to make it as searchable from product-sku-output-config.xml?
    5. How to create a hierarchical dimension?
    6. What is CategoryTreeService and how it works?
    7. Why do we need Category Tree service?
    8. How to Add properties to Dimensions?
    9. Why CRS has extended RefinementMenuHandler that Endeca implementation can not support it?
    10. How to change the search interface name?
    11. What are different types of Accessors?
    12. How to test indexing using a Product record using dyn/admin?
    13. How ATG interact with Endeca to get content from Endeca Experience Manager?
    14. is it possible to add multiple hierarchical dimensions?
    15. What is the use of CAS Record store during Indexing? Do we always need record store for indexing without ATG integrations?


    Reply Your Answers to Comment Section. This would help others to understand Endeca Basics. I will consolidate the reply and post the answers. Will post another set of Questions soon.


    Sunday, February 26, 2017

    Can Endeca Partial Indexing be performed after inventory or direct SQL update?

    Behaviour As per default behavior of ATG Endeca integration, Endeca Partial indexing does not update index with inventory update. ATG driv... thumbnail 1 summary
  • Behaviour
    As per default behavior of ATG Endeca integration, Endeca Partial indexing does not update index with inventory update. ATG driven partial index looks for IncrementalItemQueueRepository and this repository does not get updated during direct SQL update or inventory update.

    Solution
    Endeca Partial Indexing triggered from ATG layer look for srch_update_queue table to fetch the product/sku id to apply for partial update. 

    Write a job/code to insert the sku/product id to srch_update_queue table with proper status so partial process can pick it up. Invalidate the IncrementalItemQueueRepository cache and run the partial indexing from dyn/admin. This will identify the updated data and update back to Endeca MDEX engine.




    From Author

    Was this post resolve the solution you are looking for? what do you think about this solution?Provide your comments

    Thursday, February 23, 2017

    Oracle Endeca ITL and Expereince Manager High Availability Architecture

    What are High Availability and Failover   High availability  as the ability for the system to continue functioning after the failure of... thumbnail 1 summary
  • What are High Availability and Failover

    •  High availability as the ability for the system to continue functioning after the failure of one or more of the servers.
    • Failover as one possible implementation of high availability. Failover is defined as the ability for client connections to migrate from one server to another in the event of server failure so client applications can continue to operate.

    How to Setup ITL and XM Failover

    Two Information Transformation Layer (ITL) servers which host Tools and Framework required achieving high availability and another for Disaster recovery (DR) if required. 
    Only one ITL can be in active mode and remaining failover/backup should be passive mode . As per architecture, specific, in the diagram below, folders should be shared between primary and backup ITL servers using shared drive. DR generally hosted in the different data center so file system replication or other technique required for DR environment. The Shared drive can be setup during product and app installation.
    Following points needs to be taken care of during installation
    • Installation path should be same in all environments to avoid any conflicts and issues.
    • Endeca Application Initialize services script required to run from all the ITL servers for the first time.
    • Make sure to copy same Dgraph cluster XML with same naming convention to avoid duplicate Dgraph instance
    Find out block diagram below for HA understanding and setup

    What needs to be shared between active and passive ITL servers:-

    1.  Tools and Framework state folder
    2. Endeca application Data folder
    3. CAS workspace shared folder

    What happens if failover happens during mid-process 

    • Failover ITL would have to begin the process again if primary ITL Dgidx failed from Dgidx process.
    • Failover ITL would have to begin the entire process again if primary ITL forge failed.
    • Failover ITL would have to begin the entire process again if primary CAS indexing  failed.
    Note :  ATG properties need to be changed to redirect indexing to failover ITL in the event of primary ITL fault, but best practice would probably be to restart the indexing process again.
    For more Endeca related information visit:  http://www.ajayagrwal.com/

    Monday, January 2, 2017

    Endeca Basics : Interview Questions and Answers- Part1

    Endeca Basics - Interview Questions - Part-1 1. What is Endeca and why do you use Endeca instead of other search products? 2. What are ... thumbnail 1 summary

  • Endeca Basics - Interview Questions - Part-1

    1. What is Endeca and why do you use Endeca instead of other search products?
    2. What are dimensions and properties? 
    3. What is difference between single and multi dimension and how to create?
    4. Can same property used for dimension and properties if possible than how?
    5. What is Hierarchical Dimension and how can you create?
    6. How can you get complete hierarchy of hierarchical dimension using single query?
    7. What is Dimension search and is it different from Record search?
    8. Which Endeca query Parameters and value gives all Endeca Records from MDEX Engine?
    9. is it possible to get Record and Dimension search using single query?
    10. What are different Types of Endeca Query Available?
    11. is it possible to store some properties inside dimension and how? Where do you use this scenario?
    12. What are different types of Dimension available in Endeca?
    13. What is difference between Internal and External Dimension and where dimension values gets stored(File)?
    14. How to modify the Dimension ID?
    15. How to remove some Dimension value(not used) from Endeca Experience manager?


    Reply Your Answers to Comment Section. This would help others to understand Endeca Basics. I will consolidate the reply and post the answers. Will post another set of Questions soon.


    Monday, December 19, 2016

    Endeca 11.x : Unable to retrieve site definition for site id

    Behavior :-  Following Exception/Error comes during accessing the Endeca pages SEVERE: Unable to retrieve site definition for site id: ... thumbnail 1 summary

  • Behavior :- Following Exception/Error comes during accessing the Endeca pages

    SEVERE: Unable to retrieve site definition for site id: /storeSiteUS
    com.endeca.store.exceptions.PathNotFoundException: No node found at path: [pages].
            at com.endeca.store.configuration.InternalNode.getNode(InternalNode.java:153)
            at com.endeca.store.configuration.InternalNode.getNodeInfo(InternalNode.java:221)
            at com.endeca.store.configuration.InternalNode.getNode(InternalNode.java:150)
            at com.endeca.store.configuration.InternalNode.getNode(InternalNode.java:61)
            at com.endeca.infront.site.SiteManager.getSite(SiteManager.java:147)
            at atg.endeca.assembler.multisite.SiteStateParserImpl.parseSiteState(SiteStateParserImpl.java:94)
            at com.endeca.infront.site.SiteStateBuilder.createSiteState(SiteStateBuilder.java:110)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at atg.nucleus.factory.instance.MethodInstanceFactory.createInstance(MethodInstanceFactory.java:303)
            at atg.nucleus.PropertyConfiguration.loadFromInstanceFactory(PropertyConfiguration.java:697)
            at atg.nucleus.PropertyConfiguration.createNewInstance(PropertyConfiguration.java:780)
            at atg.nucleus.PropertyConfiguration.createNewInstance(PropertyConfiguration.java:741)
            at atg.nucleus.NucleusNameResolver.createNewInstance(NucleusNameResolver.java:1619)
            at atg.nucleus.MultiRootNameResolver.createFromName(MultiRootNameResolver.java:833)
            at atg.nucleus.MultiRootNameResolver.resolveName(MultiRootNameResolver.java:455)
            at atg.nucleus.ConfigurationRef.getValue(ConfigurationRef.java:119)
            at atg.nucleus.SimpleComponentState.setBeanProperty(SimpleComponentState.java:406)
            at atg.nucleus.SimpleConfigurationState.saveToBean(SimpleConfigurationState.java:240)
            at atg.nucleus.SimpleConfigurationState.configureBean(SimpleConfigurationState.java:263)
            at atg.nucleus.BeanConfigurator.configureBean(BeanConfigurator.java:297)
            at atg.nucleus.PropertyConfiguration.configureService(PropertyConfiguration.java:1055)
            at atg.nucleus.MultiRootConfiguratorImpl.configureService(MultiRootConfiguratorImpl.java:103)
            at atg.nucleus.MultiRootNameResolver.configureService(MultiRootNameResolver.java:1116)
            at atg.nucleus.MultiRootNameResolver.configureAndStartService(MultiRootNameResolver.java:1195)
            at atg.nucleus.MultiRootNameResolver.bindAndConfigureService(MultiRootNameResolver.java:959)
            at atg.nucleus.MultiRootNameResolver.createFromName(MultiRootNameResolver.java:849)
            at atg.nucleus.MultiRootNameResolver.resolveName(MultiRootNameResolver.java:455)
            at atg.nucleus.MultiRootNameResolver.resolveName(MultiRootNameResolver.java:1064)
            at atg.nucleus.factory.instance.MethodInstanceFactory.getMethodToInvoke(MethodInstanceFactory.java:218)
            at atg.nucleus.factory.instance.MethodInstanceFactory.createInstance(MethodInstanceFactory.java:290)
            at atg.nucleus.PropertyConfiguration.loadFromInstanceFactory(PropertyConfiguration.java:697)
            at atg.nucleus.PropertyConfiguration.createNewInstance(PropertyConfiguration.java:780)
            at atg.nucleus.PropertyConfiguration.createNewInstance(PropertyConfiguration.java:741)
            at atg.nucleus.NucleusNameResolver.createNewInstance(NucleusNameResolver.java:1619)
            at atg.nucleus.MultiRootNameResolver.createFromName(MultiRootNameResolver.java:833)
            at atg.nucleus.MultiRootNameResolver.resolveName(MultiRootNameResolver.java:455)
            at atg.nucleus.ConfigurationRef.getValue(ConfigurationRef.java:119)

            at atg.nucleus.PropertyConfiguration.loadFromInstanceFactory(PropertyConfiguration.java:697)
            at atg.nucleus.PropertyConfiguration.createNewInstance(PropertyConfiguration.java:780)
            at atg.nucleus.PropertyConfiguration.createNewInstance(PropertyConfiguration.java:741)
            at atg.nucleus.NucleusNameResolver.createNewInstance(NucleusNameResolver.java:1619)
            at atg.nucleus.MultiRootNameResolver.createFromName(MultiRootNameResolver.java:833)
            at atg.nucleus.MultiRootNameResolver.resolveName(MultiRootNameResolver.java:455)
            at atg.nucleus.ConfigurationRef.getValue(ConfigurationRef.java:119)
            at atg.nucleus.SimpleComponentState.setBeanProperty(SimpleComponentState.java:406)
            at atg.nucleus.SimpleConfigurationState.saveToBean(SimpleConfigurationState.java:240)
            at atg.nucleus.SimpleConfigurationState.configureBean(SimpleConfigurationState.java:263)
            at atg.nucleus.BeanConfigurator.configureBean(BeanConfigurator.java:297)
            at atg.nucleus.PropertyConfiguration.configureService(PropertyConfiguration.java:1055)
            at atg.nucleus.MultiRootConfiguratorImpl.configureService(MultiRootConfiguratorImpl.java:103)
            at atg.nucleus.MultiRootNameResolver.configureService(MultiRootNameResolver.java:1116)
            at atg.nucleus.MultiRootNameResolver.configureAndStartService(MultiRootNameResolver.java:1195)
            at atg.nucleus.MultiRootNameResolver.bindAndConfigureService(MultiRootNameResolver.java:959)
            at atg.nucleus.MultiRootNameResolver.createFromName(MultiRootNameResolver.java:849)
            at atg.nucleus.MultiRootNameResolver.resolveName(MultiRootNameResolver.java:455)
            at atg.nucleus.ResolveNameHelperImpl.resolveName(ResolveNameHelperImpl.java:274)
            at atg.servlet.DynamoHttpServletRequest.resolveNameSingleNucleus(DynamoHttpServletRequest.java:3898)
            at atg.servlet.DynamoHttpServletRequest.resolveName(DynamoHttpServletRequest.java:3857)
            at atg.servlet.DynamoHttpServletRequest.resolveName(DynamoHttpServletRequest.java:3983)
            at atg.endeca.assembler.NucleusAssembler.resolveHandler(NucleusAssembler.java:182)


    Solution :-  Follow the steps as mentioned in my one of the previous post to solve above error.

    Unable to retrieve site definition for site id

    From Author
    Was this post resolve the solution you are looking for? are you looking for some other issues?Provide your comments

    Sunday, December 18, 2016

    How to import specific set of rules/content to Endeca Experience manager?

    Oracle Endeca 11.1 onward support to import specific content item to Endeca Experience manager via calling ECR repository. This features e... thumbnail 1 summary

  • Oracle Endeca 11.1 onward support to import specific content item to Endeca Experience manager via calling ECR repository. This features enable to import content generated by CMS solutions to XM using scheduled job after extending/customize script to support XM supported xml/json format.

    This can be achieved using runcommand utility script to import specific/single content item.

    Here is the command

    <<Endeca_App_Path>>/Discover/control/runcommand.sh IFCR importContent "content/Shared/banner/Hero Banner" "<<Content_full_Path>>/content/Shared/banner/Hero Banner"

    Above command will import Hero Banner content to XM. There are other utilty available as well to import and export content.
    From Author
    Was this post resolve the solution you are looking for? are you looking for some other issues?Provide your comments

    Wednesday, December 14, 2016

    How to add user segment from ATG to Endeca witout creating segment in ATG?

    ATG passes all the user segments to endeca query based on profile to tigger different rule or content. There are some situations where som... thumbnail 1 summary

  • ATG passes all the user segments to endeca query based on profile to tigger different rule or content. There are some situations where some user segment does not exist in profile but required for endeca query to trigger different types of content.

    Example :- Show different banner if user is coming from affiliate A and show different banner if user is coming from affiliate B.

    This can be achived using below code to add user sgament based on different business logic

    public class ExtendNavigationStateProcessor implements NavigationStateProcessor {
      private UserState mUserState = null;
      @Override
    public void process(NavigationState pNavigationState) {

     if(Condition-1){
    getUserState().addUserSegments("Affliate-A");
    }
    else{
    getUserState().addUserSegments("Affliate-B");
    }
    }

    public UserState getUserState() {
    return mUserState;
    }

    public void setUserState(UserState pUserState) {
    mUserState = pUserState;
    }

    }


    From Author
    Was this post resolve the solution you are looking for? are you looking for some other issues?Provide your comments

    Text Widget