Wednesday, 7 April 2010

endeca enterprise search engine

Endeca is a enterprise wide search engine that supports navigational search and make search faster, Quicker and efficient manner. The Endeca operate like all our relevant data with different tables are mapped together and cooked up by endeca in a single flat file.

Endeca has three major components. They are like,
1. Endeca Information Transformation Layer (ITL)
2. Endeca MDEX Engine
3. Endeca presentation API.

The diagram below explains how different components interact together.




The ITL has an Content Acquisition System (CAS) which is responsible for reads your raw source data and manipulates it into a set of Endeca MDEX Engine indices.

The MDEX Engine loads the indices generated by the indexing
component of the Endeca Information Transformation Layer. After the
indices are loaded, the MDEX Engine receives queries from the Endeca
Presentation API, executes them against the loaded indices, and returns
the results to the client Web browser.

The Endeca Presentation API provides the interface to the MDEX Engine.
The API is responsible for querying the MDEX Engine and manipulating the
results. Endeca Presentation API has their own .NET and JAVA client libraries and it all so have supports web services based queries so that it can be implemented in anu languages.

Friday, 2 April 2010

java object creation static factory method

Many of you aware of static factory method which is a simple static method returns an instance of the class. An example like public static Boolean valueOf(boolean yourVal). No let me explain some of the advantages of using static factory method.

Some of the advantages:

1. When ever we invoke a constructor like Emp emp = new Emp() it creates an object. But using static factory method like Emp emp = Emp.getInstance() (Consider getInstance() is a static method which return type is EMP object) will always returns single Emp object no matter how many times we called them.

2. We could create any number of static methods with different names like getCar() return car object, getBreak() returns break object, But constructors have the constraints like should have the class name as their name. So we might need to differentiate using the parameter (using method overloading) which is good but on the readability point of view it will confuse.


So all good what about disadvantages. yah it has a main disadvantages,

Since we have all static methods naturally the constructor will be private. So we can't really extends the class. Some of the object orientations might me lost.