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

    Text Widget