How record sorting and relevance ranking works?

There are three ways of controlling the order in which records are returned:
1) Explicit sort key using Ns parameter
2) Default sort using Dgidx flag
3) Relevancy Ranking

The priority of record sorting/relevance ranking is as follows:

1) If none of the above  sorting methods is specified then Endeca uses order of internal ID generated by Dgidx during indexing

2) If Sort key is used(Ns parameter) then sort key overrides all other sorting and relevance ranking settings

3) If a default sort key is specified then records are returned in default sort order(Ties are broken using the internal order by Dgidx)

4) When searching against a search interface relevance ranking strategy is used(ties are broken using the default sort key and if no sort key then ties are broken using the internal order by Dgidx)

5) MDEX Engine query with relevance ranking parameter (overrides any relevance ranking strategies configured in the search interface)

Endeca Pipeline : Record Cache

In Endeca, all data sources feeding a join must be record cached. 

There are two exceptions: 
1) Switch join -  It does not do record comparisons and do not require record caches for their data sources
2) Left join - All of the right sources are record caches and hence the left source does not require a record cache

How to start Endeca HTTP service and Endeca Tools Service?

Windows:
Go to Start > Control Panel > Administrative Tools > Services

Select the Endeca HTTP service and the Endeca Tools Service and click Start.  

On UNIX: 
To start the Endeca HTTP service, run  
           $ENDECA_ROOT/tools/server/bin/startup.sh


To start the Endeca Tools Service, run  
           $ENDECA_TOOLS_ROOT/server/bin/startup.sh
 

Endeca Tips for troubleshooting long processing time - Core Endeca

         Is the long processing time for the Engine caused by limitations of hardware resources? 
o Identify whether long query time is caused by CPU, memory, or disk I/O utilization.

          Is a high number of records being returned by the MDEX Engine?
o Identify how many records are being returned per query by looking for large nbins values in queries as reported by Cheetah(Performance Monitoring Tool).  If this number is high, this can be expensive to compute and affects performance.

          Are all dimension refinements (dimension values) exposed for navigation? 
o Identify whether all dimension refinements are exposed by looking forallgroups=1 in the Dgraph request log (request URL parameter) or in Cheetah reports 

          Are your longest queries similar?
o Check the longest queries for similarities, such as whether they all use the same search interface with relevance ranking, wildcard search, or record filters.

          Is record search being used?
o Identify whether a record search is being used by any queries by looking for “attrs=search_interface_name” in a query. This indicates that a record search is being used which means that possibly expensive relevance ranking modules can be contributing to high computation time

          Which relevance ranking strategies are being used?
o Check the CRS.relrank_strategies.xml file for the presence of Exact, Phrase and Proximity ranking modules and test the same query with these modules removed.

          Is sorting enabled for properties or dimensions?
o Identify whether sorting with sort keys is enabled, for which properties and dimensions it is being used and whether it is needed. 
o The first time a sort key is issued to a Dgraph after startup the key must be computed which can slow down performance. To isolate this problem, test the query in the staging environment by removing the sort key. 
o If you confirm sort keys are the issue, consider using sort keys in a representative batch of queries used to warm up the Dgraph after startup. 
o The sorts will become cached and these queries will be faster. 

Versions of Endeca Commerce releases and Comparison chart

Oracle Endeca Commerce architectural comparison over multiple versions

How to Handle Special Characters in Search? - Endeca Best Practices

Endeca uses only alphanumeric characters to be searchable by default as part of Endeca search query.

Problem Statement:
If any search term contains any special characters then Endeca replaces special characters by "space" and makes endeca query. This may not give intended results.

Ex: If a search term is β Antibody, Endeca internally replaces search term special chars with space and search term would be Antibody".

Solution:
For Forge-based Application:
1. Open  /opt/app/endeca/apps/CRS/config/pipeline/CRS.search_chars.xml

2.  Add all characters that you want to make searchable.
3.  Run baseline
update 


For Forge-less  Application:
1. Open  /opt/app/endeca/apps/CRS/config/mdex/CRS.search_chars.xml
2.  Add all characters that you want to make searchable.
3.  Run baseline
update


Pipeline Changes Looks like as below:

How to remove Endeca application entry from Workbench when user deleted complete project folder from the Endeca box without following clean removal steps and application entry is still registered with IFCR?

Problem Statement:  How to remove Endeca application entry from Workbench when user deleted complete project folder from the Endeca box without following clean removal steps and application entry is still registered with IFCR?

ERROR Message: 05.26.16 09:16:24] SEVERE: Caught an exception while invoking method 'run' on object 'InitialSetup'. Releasing locks.
Caused by java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl invoke0 - null
Caused by com.endeca.soleng.eac.toolkit.exception.AppControlException
com.endeca.soleng.eac.toolkit.script.Script runBeanShellScript - Error executing valid BeanShell script.
Caused by com.endeca.soleng.eac.toolkit.utility.IFCRUtility$HttpStatusException
com.endeca.soleng.eac.toolkit.utility.IFCRUtility execute - Precondition Failed (412): Cannot copy JcrNodeResource, type=endeca/site, superType=null, path=/prototype/default to /sites/CRSen: destination exists


Solution: 
1) Create the new Endeca application [ex: CRSen] with the same name using deployment template
/opt/app/endeca/ToolsAndFrameworks/3.1.2/deployment_template/bin]$ ./deploy.sh --app ../../reference/discover-data/deploy.xml 

2) Run Application provision command   
/opt/app/endeca/apps/CRSen/control$]./initialize_services.sh

3) Use runcommand.sh|bat to remove app
/opt/app/endeca/apps/CRSen/control$]./runcommand.sh --remove-app

 How to create new application using deployment template?

/opt/app/endeca/ToolsAndFrameworks/3.1.2/deployment_template/bin]$ ./deploy.sh --app ../../reference/discover-data/deploy.xml

 ------------------------------------------------------------------------------
   Found version 6.1 of the Endeca IAP installed in directory
   /opt/app/endeca/PlatformServices/6.1.3. If either the version or location are
   incorrect, type 'Q' to quit and adjust your ENDECA_ROOT environment variable.
   Press enter to continue with these settings.

   Continue?
>Hit Enter

 ------------------------------------------------------------------------------
     Deployment Template installation script.

     This script creates the directory structure for your
     deployment and installs configuration files and scripts
     into the directory structure.
  
05/26/2016 09:14:19 [deploy.pl] INFO:  Starting deployment template
   installation.

 ------------------------------------------------------------------------------
   The following app modules were specified on the command line argument:

   ../../reference/discover-data/deploy.xml
  

   Modules may be deployed standalone or on top of a base deployment type. Do
   you want to install a base deployment with the specified module(s)?

   Install base deployment? [Y/N]:
Y
05/26/2016 09:14:22 [AppDescriptorReader] INFO:  Parsing application descriptor
   file ../../reference/discover-data/deploy.xml.
05/26/2016 09:14:22 [AppDescriptorReader] INFO:  Parsing application descriptor
   file
   /opt/app/endeca/ToolsAndFrameworks/3.1.2/deployment_template/lib/../app-templates/base_descriptor.xml.

 ------------------------------------------------------------------------------
   Enter a short name for your application.

   Note: The name must conform to this regular expression: ^[a-zA-Z0-9]+$
    [default: Discover]

   Choosing a different application name may require additional configuration on
   your web application.

   Application name:
CRSen

 ------------------------------------------------------------------------------
   Specify the path into which the application will be deployed. The specified
   directory must exist and cannot contain spaces.

   For example, to deploy into /localdisk/apps/CRSen, specify the path as
   /localdisk/apps.

   Deployment directory:
/opt/app/endeca/apps

 ------------------------------------------------------------------------------
   Specify the port on which the Endeca Application Controller is running. This
   is configured in the server.xml file in the workspace of the Endeca software
   install and should be the same for all applications deployed in this
   environment. Ports must be in the range 1024-65535 [default: 8888].

   EAC port:
8888
05/26/2016 09:14:40 [deploy.pl] INFO:  Deploying application into
   /opt/app/endeca/apps/CRSen

 ------------------------------------------------------------------------------
   What port is the Workbench running? [Default: 8006]
8006

 ------------------------------------------------------------------------------
   What port should be used for the Live Dgraph? [Default: 15000]
15000

 ------------------------------------------------------------------------------
   What port should be used for the Authoring Dgraph? [Default: 15002]
15002

 ------------------------------------------------------------------------------
   What port should be used for LogServer? [Default: 15010]
15010
05/26/2016 09:14:54 [AppDescriptorReader] INFO:  Parsing application descriptor
   file
   /opt/app/endeca/ToolsAndFrameworks/3.1.2/deployment_template/lib/../app-templates/base_descriptor.xml.
05/26/2016 09:14:54 [deploy.pl] INFO:  Processing install with id 'Dgraph'
05/26/2016 09:14:54 [AppDescriptorReader] INFO:  Parsing application descriptor
   file ../../reference/discover-data/deploy.xml.
05/26/2016 09:14:54 [deploy.pl] INFO:  Processing install with id
   'DefaultTemplateManagerApp'
05/26/2016 09:14:54 [deploy.pl] INFO:  Application successfully deployed.

How to configure inactive user is logged out of Oracle Endeca? - Endeca Workbench

1. Stop the Endeca Tools Service.

2. Navigate to %ENDECA_TOOLS_CONF%\conf (on Windows) or  $ENDECA_TOOLS_CONF/conf (on UNIX).

3. Open the webstudio.properties file, and locate the 
com.endeca.webstudio.timeout.warning property

# The warning for impending auto-logout 
com.endeca.webstudio.timeout.warning=3300

4. Change the value to the number of seconds of inactivity that you want to elapse before an impending automatic logout warning appears to an inactive user.

5. Locate the com.endeca.webstudio.timeout.logout property. 

# The time where a user will be automatically logged out due to inactivity com.endeca.webstudio.timeout.logout=3600

6. Change the value to the number of seconds of inactivity that you want to elapse before an inactive user is logged out of Workbench.

7. Save and close the file.

8. Start the Endeca Tools Service.

Managing users in the Workbench - Best practices

Oracle recommends the following best practices for managing users in the Workbench -

• Consider adding all users to groups to make managing permissions simpler

• Do not share the predefined admin user account. This makes it difficult to track who has made changes to Workbench. Create an account for each user or group that administers Workbench

• Do not let business users share accounts. Again, this makes it difficult to track changes in Workbench

• Create administrators in addition to the predefined admin. If one administrator loses a password, another administrator needs to reset it

• If you use LDAP, consider creating an LDAP group of administrators to add to the Administrators group in Workbench

About configuring Workbench resource caching in a Web browser - Endeca Workbench

If users are connecting to Workbench over a high-latency network, setting certain cache settings in the Web browser may improve performance. 

Workbench pages reference a number of assets such as images, CSS files, and JavaScript files. These assets are relatively static and are typically cached by the browser. They are served with HTTP headers that instruct the browser not to check for new versions of these files for a period of six hours. This results in better page load performance for users who connect to Workbench over a high-latency network. 

Oracle recommends setting your browser to check for new versions of pages automatically, and allocating 256MB or more of disk space to temporary files.

Users Segmentation in ATG Endeca platform - ATG Endeca Personalization

How to create User segments in ATG - BCC?

In ATG, user segments are created and managed from BCC. User segments in ATG are used for personalization for specific group of users.
Targeting and Segmentation > User Segments 

 

 

If user want these ATG user segments to act as a trigger for any content in Endeca Experience Manager, you need to define User Segments with the same name (as in ATG) in Endeca also, and use these User Segments as triggers for your target pages.
 
How to create User segments in Endeca?

User Segments in Endeca can be used as triggers for triggering the appropriate content configured in Experience Manager. In Endeca, User Segments can be created from the Endeca Workbench.

How to configure different home page for logged in users v/s anonymous users?

  

 
User segments in ATG and Endeca work in tandem to deliver a personalized experience to users. Whenever ATG invokes the Endeca Assembler, ATG passes all the User Segments that are applicable for the current Profile.