oracle endeca developer's guide
TRANSCRIPT
Oracle EndecaIntroduction to Assembler Application & Cartridges
- Keyur Shah (http://www.linkedin.com/in/keyurkshah)
Note: Source for some of the images is Oracle Endeca Documentation
Endeca Component Interaction
Endeca Component Interaction - 2
Offline processing raw data sources
Endeca ITLEndeca MDEX Engine
Endeca Application Tier
Online processing
Your Application
User’s Browser
Endeca Pipeline
The end result is an Endeca index which possesses enriched source data and enhanced search and Guided Navigation capabilities
Loading Data
Caching & Joining Data Manipulating Data Dimension
Mapping
The Endeca pipeline
Endeca Index Architecture
Crawl
Website
Configuration
Content
Database & File System
Indexing
MDEX Dgraph / Index
ConsoleWSDL
CMS Connector
File System
JDBCMerge
Record Store
Record Store
MDEXCompatible Output
DimensionMapping
Manipulators
DocumentConversion
Content Acquisition System
Custom
ATG-Endeca Integration
Endeca Content Acquisition
System
Product Record Store
DimensionRecord Store
ATG Web Commerce
Product Exporter
Category Exporter
Schema Exporter SchemaRecord Store
Endeca Application Controller
Endeca ITL Endeca MDEX
ConfigurationForge
Web Application
Product Catalog
Indexing Admin
ATG Deployment Template Module
Endeca Configuration
Publish Product Catalog Assets to Endeca Records Publish Categories to Endeca Dimensions Publish Schema Metadata from ATG Web Commerce
to Endeca Operational Support
MDEX Engine
The MDEX Engine uses proprietary data structures and algorithms that allow it to provide real-time responses to client requests. The MDEX Engine stores the indices that were created the Dgidx indexing program. After the indices are stored, the MDEX Engine receives client requests via the application tier, queries the indices, and then returns the results.
The two primary components of the MDEX Engine package are the following:
• Dgraph • Dgidx
MDEX engine is designed to be stateless.
Overview of CAS & Crawler
Endeca – Type of Pages
Site may have 3 basic page types:
Page Structure & Content Type
Templates & Cartridges Work Together
Cartridge Structure
Endeca Assembler Application
The Endeca Assembler application enables a WEB application to query the MDEX Engine and retrieve the appropriate dynamic content based on user’s navigation state or other triggers
The Assembler application provides a RESTful web service API that returns results either in JSON or XML.
The Assembler API is powered by Java, but the query interface is language-agnostic web service
Example of JSON Returned by Assembler Application
Example of JSONhttp://localhost:8006/discover/?format=json
Explicitly retrieve JSON
from Assembler
Open the JSON in Notepad++
Download the JSON Viewer
for Notepad++
JSON Viewer in Notepad++ You can download the JSON Viewer for Notepad++ from Sourceforge http://sourceforge.net/projects/nppjsonviewer/?source=dlp Unzip the download This plugin is meant to display a JSON string in a Treeview. It also marks the error
position in case of parsing errors. Thats it!!!============Instruction:============1. Paste the file "NPPJSONViewer.dll" to Notepad++ plugin folder2. open a document containing a JSON string3. Select JSON fragment and navigate to plugins/JSON Viewer/show JSON Viewer or press
"Ctrl+Alt+Shift+J"
Cartridge Creation WorkflowReviewAs we have seen, the high-level workflow for creating a basic cartridge is: 1. Create a cartridge template and upload it to Endeca
Workbench 2. Use Experience Manager to create and configure and
instance of the cartridge 3. Add a renderer to the front-end application
FOR DEVELOPERS
Step 2 is necessary during development in order to have a cartridge instance with which to test.However, once the cartridge is complete, the business user is typically responsible for creating and maintaining cartridge instances in Experience Manager.
Endeca Content & Indexing
What Happens @ Runtime?
The Assembler retrieves this configuration at runtime and uses it to build the response model that it returns to the client application.
How does it all work?
Hello Cartridge - ExampleTo create and configure a basic “Hello cartridge”:
Create a cartridge template
1. Open a new plain text or XML file2. Type or copy the following contents to the file (with .xml extension)3. Save the file into C:\Endeca\Apps\Discover\config\cartridge_templates folder
Hello World Cartridge – Example (Cont’d)
<ContentTemplate xmlns="http://endeca.com/schema/content-template/2008" xmlns:editors="editors" type=“SecondaryContent" id="Hello">
<Description>A sample cartridge that can display a simple message.</Description>
<ThumbnailUrl>/ifcr/tools/xmgr/img/template_thumbnails/sidebar_content.jpg</ThumbnailUrl>
<ContentItem>
<Name>Hello cartridge</Name>
<Property name="message">
<String />
</Property>
<Property name="messageColor">
<String />
</Property>
</ContentItem>
<EditorPanel>
<BasicContentItemEditor>
<editors:StringEditor propertyName="message" label="Message" />
<editors:StringEditor propertyName="messageColor" label="Color" />
</BasicContentItemEditor>
</EditorPanel>
</ContentTemplate>
Save the file into
C:\Endeca\Apps\Discover\config\cartridge_templates folder
Save & Upload Cartridge
Add a Cartridge to a Page(Experience Manager)
Workbench & Experience Manager
“Add/Change” for Cartridge Selector
Add New “RightContent”
12
3
4
New RightContent Added“Hello Cartridge”
Add the custom “Message” and “Color” values followed by clicking on the “SAVE CHANGES” BUTTON (right top)
Review the Changes in Discover Authoring
Right Content
Top Related Products
Hello
The error displays because we have not yet created a renderer for the Hello cartridge.
http://localhost:8006/discover-authoring
Viewing the JSON for Cartridge Verification At the footer of the discover authoring default page, you
should see couple of interesting links “json” and “xml” You can click on JSON or XML link to view the MDEX
response (content type + content) to the page request
Clicking on “json” – you will be able to view the page response in json format
Goto the bottom of JSON response or search “Hello” in the response
You will be able to confirm the presence of Hello Cartridge
Hello.JSP – Bring It All TogetherAdding the Basic Renderer Endeca application have no way to render the content to the front-
end (Either JSON or XML or Custom XML) Create a new JSP file (Hello.jsp) in the C:\Endeca\
ToolsAndFrameworks\3.1.2\reference\discover-electronics-authoring\WEB-INF\views\desktop\Hello folder (You need to create the Hello folder)
<%@page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%><%@include file="/WEB-INF/views/include.jsp"%><div style="border-style: dotted; border-width: 1px;border-color: #999999; padding: 10px 10px"><div style="font-size: 150%;color: ${component.messageColor}">${component.message}</div></div>
Color-coded
For your copy-paste
purpose
Testing the Hello.jsp Once you have created the JSP and dropped in the Hello folder as
described in previous slide, you are ready to test the changes Just refresh the Discover authoring home page
http://localhost:8006/discover-authoring , and you should be able to see the Hello World! Message as defined in the experience manager
Customize Cartridge Editor
Experience Manager ImpactCartridge Editor Customization Previous
Now
Save & Confirm ChangesIn Authoring View
Customize Thumbnail ImageCustom Image & Dimension Create a custom JPG image in your favorite image
tool e.g. You can use Windows paint application
Images are typically of 81x81 dimension in Experience Manager (below are examples of default images)
You can copy/save the custom thumbnail image on your web or image server
For this example, We are saving the image to below folder
Customize Thumbnail Image(Cont’d) – Common Location
Customize Thumbnail Image(Cont’d) – Modify the Cartridge XML
We have commented the default ThumbnailUrl TAG, and customized the ThumbnailUrl TAG to use the Hello.jpg from the images folder where we saved this file in previous slide
NOTE: Remember to run the set_templates script in Control folder
Customize Thumbnail Image(Cont’d) – Verify the changes