Endeca Relevance Ranking - Best practice

Best Practice: For applications dealing with Retail catalog data, the preferred order of modules is:
1. NTerms
2. MaxField
3. Glom
4. Exact
5. Static


Explanation: 
NTerms, the first module, ensures that in a multi-word search, the more words that match in the record, the higher the record is scored.
MaxField puts cross-field matches (see Allowing Cross-Field Matches) as high in priority as possible, to the point where they could tie with non-cross-field matches.
Glom, decomposes cross-field matches, effectively breaking any ties resulting from MaxField. Together, MaxField and Glom provide appropriate cross-field match ordering, depending upon what matched.
Exact module means that an exact match in a highly-ranked member of the search interface is placed higher than a partial or cross-field match.
Optionally, the Static module can be used to sort remaining ties by criteria such as Price or InstockWeb.


Example: Below Screenshot shows on how to configure Rel.Ranking Modules using Endeca Pipeline



Best Practice: For applications dealing with Document Repository Data, the preferred order of modules is:
1. NTerms
2. MaxField
3. Glom
4. Phrase

5. Static

Explanation:
NTerms, the first module, ensures that in a multi-word search, the more words that match in the record, the higher the record is scored.
MaxField puts cross-field matches (see Allowing Cross-Field Matches) as high in priority as possible, to the point where they could tie with non-cross-field matches.
Glom, decomposes cross-field matches, effectively breaking any ties resulting from MaxField. Together, MaxField and Glom provide appropriate cross-field match ordering, depending upon what matched.

Phrase module ensures that results containing the user's query as an exact phrase are given a higher priority than matches containing the user's search terms sprinkled throughout the text.
Optionally, the Static module can be used to sort remaining ties by criteria such as Price or SalesRank.

How to Remove the Endeca application? - Endeca

While removing an Endeca application, do not simply remove the Endeca application directories or delete EAC state directories (ENDECA_CONF/state/eac*) from in the file system.
This leaves application artifacts, which can cause naming conflicts when creating a new project with the same name. Clients running Oracle ATG Commerce, having random Endeca application artifacts can interfere with Commerce Reference Store installation and with indexing functionality.
To completely remove an Endeca application follow below steps:

Step 1:  Remove APP using runcommand
              <Endeca-app-dir>\control\runcommand.sh|bat --remove-app
              CRS\control\runcommand.sh|bat --remove-app

Step 2: Drop the corresponding Record stores from CAS
            Check names of application record stores registered in CAS.
             $CAS_ROOT\bin>component-manager-cmd.bat/.sh list-components
Remove the record stores corresponding to your Endeca application.  The record store names will be prefixed with the application name.
For example:
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_data 
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_schema
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_prules
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_dimvals

Step 3: Finally, remove the Endeca application directory from the file system

Endeca ResultsList Boost and Bury or Endeca Record Spotlight cartridge editor grayed out - Endeca Boost and Bury

Problem Statement:
A common problem developers run into with the ResultsList editor's Boost and Bury controls or the Record Spotlight cartridge is the record selection editor being grayed out. 

Solution:
This happens when your Endeca application's dataservice.json file is not configured with the correct hostname - i.e. one that matches the URL used to access Workbench.

To properly configure and fix this, you need to do two things:
  1. Update the hostname and port in the /opt/app/endeca/APPN_NAME/config/editors_config/services/dataservice.json file with the correct authoring MDEX hostname
  2. Run the set_editors_config.sh script under /opt/app/endeca/APPN_NAME/control directory to push out the update to Experience Manager.

What can Partial update do and can't do? - Endeca partial Update

What can Partial update do and can't do ? 

Endeca Property: 
 - Change, Remove, Update the property values.
 - Cannot Add, Remove, Change a property itself 

Dimension:
 - Change, Remove, Update dimension values. 
 - Cannot Add, Remove, Change a dimension itself
 - Cannot Add, Remove something in the hierarchy of dimension values

Endeca Content Acquisition System (CAS) - CMS Connectors

CMS Connectors Provide a means to access and crawl data sources in a wide variety of CMS types. Each CMS data source has a corresponding connector. Endeca Content acquisition System supports nine licensed CMS connectors. 

1) Documentum eRoom
2) Documentum Content Server
3) Lotus Notes (Domino)
4) FileNet P8
5) FileNet Document and Image services
6) JSR -170 compliant repositories
7) Microsoft SharePoint (2003 & 2007)
8) OpenText LiveLink
9) Interwoven TeamSite

Endeca Pipeline - Source Data manipulation

Endeca pipeline support three types of manipulators:  
1) Record Manipulator
- Uses XML expressions
- Very fast and highly scalable but has limited functionality

2) Java Manipulator
- Uses Java language 
- Slower than Record manipulator but most flexible and well-known language in market

3) Perl Manipulator
- Uses Perl language
- Slowest compered to both Record and Java manipulator but very much flexible and convenient for string manipulation

Endeca Pipeline - Forge Supported Join Types

Endeca pipeline supports below join types:
1) Left Join
2) Outer Join
3) Inner Join
4) Switch Join 
5) Switch Sort Join

Less used Join Types:
1) Disjunct
2) First Record
3) Combine

https://docs.oracle.com/cd/E28911_01/PlatformServices.612/pdf/ForgeGuide.pdf  Refer - Page #64

Endeca Search - Filters

Endeca record filters are used to restrict returned records. Endeca has three types of query-based filters:

1) Records Filters
Examples:
N=0&Nr=OR(sku:123,OR(sku:456),OR(sku:789)))
A=2496&An=0&Ar=OR(10001,20099)
D=Hawaii&Dn=0&Dr=NOT(Subject:Travel)

2) Range Filter
Examples:
N=0&Nf=Price|BTWN+9+13|Score|GT+4 
The user is searching for item between $9 and $13 with Product rating greater than 4.

N=0&Nf=Location|GCLT+42.365615,-71.075647+10 
The query will return only those records whose location (in the Location property) is less than 10 kilometers from given location.

3) Endeca Query Language (EQL) filters
Examples:
N=0&Nrs=collection()/record[Author= "James Patterson"]
N=0&Nrs=collection()/record[Record_Type = "document"]

Endeca query types - Endeca Navigation Query, Endeca Record Search, Endeca Dimension Search, Endeca Aggregated Record Query


Basic Query
Returned Object(type)
URL Param
Query Example
Navigation Query

Navigation
N
/endeca_jspref/controller.jsp?enePort=15000&eneHost=localhost&N=4294966668
Record Query
ERec
R
/endeca_jspref/controller.jsp?R=sku790435010109597
Dimension Search Query
DimensionSearchResult
D
/endeca_jspref/controller.jsp?D=red+wine
Aggregated Record Query
AggrERec
A, An, Au
/endeca_jspref/controller.jsp?Au=product.repositoryId&A=sku056009010128567&An=4294947584

Endeca promote_content.sh script fails with Exception - SEVERE: Caught an exception while invoking method 'run' on object 'PromoteAuthoringToLive'. Releasing locks.

ERROR Message #1: 
/opt/app/endeca/apps/CRS/control]
$ ./promote_content.sh
[08.02.15 11:20:18] INFO: Checking definition from AppConfig.xml against existing EAC provisioning.
[08.02.15 11:20:19] INFO: Updating definition for custom component 'IFCR'.
[08.02.15 11:20:19] INFO: Updating provisioning for host 'ITLHost'.
[08.02.15 11:20:19] INFO: Updating definition for host 'ITLHost'.
[08.02.15 11:20:20] INFO: Definition updated.
[08.02.15 11:20:20] INFO: Promoting IFCR content...
[08.02.15 11:20:20] SEVERE: null
Occurred while executing line 3 of valid BeanShell script:
[[

1|
2|
3|    IFCR.promoteFromAuthoringToLive();
4|
5|
]]

[08.02.15 11:20:20] SEVERE: Caught an exception while invoking method 'run' on object 'PromoteAuthoringToLive'. 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 java.lang.NullPointerException
com.endeca.soleng.eac.toolkit.utility.IFCRUtility extractIfcrErrorMessage - null


Error Message #2:
Running Promote script from Endeca Experience Manager fails
Solution:
Check if workbench admin password got changed. If admin password got changed through Endeca Administrative Console then make sure you update WorkbenchConfig.xml  file with latest password

Ex:  /opt/app/endeca/apps/CRS/config/script/WorkbenchConfig.xml
 <!--
    ########################################################################
    # IFCR - A component that interfaces with the Workbench repository.
  -->
  <custom-component id="IFCR" host-id="ITLHost" class="com.endeca.soleng.eac.toolkit.component.IFCRComponent">
    <properties>
      <property name="repositoryUrl" value="http://localhost:8006/ifcr" />
      <property name="username" value="admin" />
      <property name="password" value="admin123" />

      <property name="numExportBackups" value="3" />
    </properties>
  </custom-component>

Endeca ENEConnectionException - How to Enable backwards compatibility, so that the Dgraph can communicate with previous versions of the Presentation API

ERROR MESSAGE in Endeca JSP reference application: ENEConnectionException com.endeca.navigation.ENEConnectionException: Error establishing connection to retrieve Navigation Engine request

Enable backwards compatibility, so that the Dgraph can communicate with previous versions of the Presentation API. In addition to the currently supported version of the Presentation API, the following previous full versions are supported: 6.0.x, 5.1.x, 5.0.x and 4.8.x. Therefore, the value for <api-version> must be one of the following:
  • 601 for all 6.0.x versions of the API.
  • 510 or 500 for all corresponding versions of the API, 5.1.x and 5.0.x.
  • 480 for the 4.8.x versions of the API, including the Perl API. 
<dgraph-defaults>
    <properties>
     ...
    <directories>
     ...
    </directories>
    <args>
       <arg>--back_compat</arg> 
       <arg>601</arg> 
       ...
        </args>
    <startup-timeout>120</startup-timeout>
  </dgraph-defaults>


Note: Starting with version 6, the Endeca Presentation API is part of the Platform Services package. For the version of the Platform Services that is compatible with the current version of the MDEX Engine.