Skip to main content

ATG Search architectural flow : Search and Index



I would like to explain the high level ATG Search implementation architecture ( for an online store) through the above diagram. In this diagram 1.x denotes the search functionality and 2.x denotes the indexing functionality. I have given JBoss as the application server.

Physical Boxes and Application Servers in the diagram ( as recommended by ATG )  :
  1. Estore ( Commerce ) Box --> The box with the estore/site ear (with the site JSPs and Java codes).
  2. Search Engine Box --> The box with the search engine application running.
  3. Indexing Engine Box --> The box with the indexing engine application running.
  4. CA (Content Administration) Box --> The box with the ATG CA ear ( where we could take CA -BCC - Search Administration and configure the search projects) .
  5. Search Indexer Box --> The box with the ATG Search Index ear ( to fetch the index data from repository). Note that the engine performing indexing will need access to the data it is indexing, which for production is the production repository. It will typically access the data via a commerce instance.  For best performance, and for large repositories, that commerce instance should be dedicated for search indexing, and should be a fast machine.
1. Search functionality flow details :

     1.1   Estore server will find the search engine box's host and search engine application running port details from the Search repository
     1.2   Estore server will call the Search engine application as a SOAP request using this host an port
     1.3   Search engine will find the search results using the index file
     1.4   Search engine will send the search results back to the Estore server

2. Index functionality flow details :

     2.1   CA server will start the indexing and will call the Search Index server to fetch the data to be indexed from the repository
     2.2   Search Index server will fetch the data from the catalog repository
     2.3   CA server will call the Index engine application to create the index files
     2.4   Index engine application will create the index files and keep it in a shared folder so that all the search engine applications can read it
     2.5   During the index deploy phase, all search engines will copy the index files to a local folder for fast access

If you need more details, please comment so that I can answer your specific questions  :-)


Comments

  1. it is great and simple. Incase both Ca, index and search engine are on same host even then will it communicate via RMI?

    ReplyDelete
  2. First of all, it is not recommended to have these 2 servers and search engine in the same host due to performance reasons. If we have them on the same box, communication with the search engine will always be through SOAP http request and from CA to search index will be via the remote port defined in search indexer.

    ReplyDelete
  3. Does the engine query the latest deployed index for the results or does it query the index file that is mentioned as part of the search request?

    If it does the latter, how does the index information get updated on the client?

    ReplyDelete
  4. The engine will look into the current deployed index. The current deployed index can be the latest index or can be an old one deployed through historical index deploy.

    Why the client need the index information ?

    ReplyDelete
  5. All articles related to ATG are really interesting and easy to understand Thomas! Great work.

    ReplyDelete
  6. Ur are really amazing SONY.... Iam New to ATG.. I want to know more concepts of ATG will u help me plzzz.....

    ReplyDelete

Post a Comment

Popular posts from this blog

Mozilla FireFox - how to add security certificate exception urls

If you visit a web site with a secure connection(https) and if the website's security certificate has some problem like the security certificate presented by the website was not issued by a trusted certificate authority  or  the security certificate has expired or is not yet valid, you will get an error page ( like below in IE ) with an option to continue to this website. When this non secure page is loading, in Internet Explorer, you will get an option to specify whether you need to download the page content files like JS, CSS, Images,... But you will not get such an option in FireFox/Chrome and could see only the text data in this new non secure page. If you are doing some local development with FireFox/Chrome and have such a situation, you might want to override this security restriction. FireFox provides some exception url list in secure certificates menu. Go to Options - Advanced - Encryption - View Certificates and click the exception list and...

How can we use SOAP UI to test ATG search

The call from the ATG commerce instance ( Estore instance ) to the search engine is done using the SOAP protocol. Read more about this architecture @  http://tips4ufromsony.blogspot.com/2011/11/atg-search-architectural-flow-search.html . If you have a SOAP UI tool (get it from @  http://www.soapui.org/ ), you could test the request/response from the search engine. You could find the wsdl for this SOAP in the folder in which your ATG search engine is installed. Below screen shot has the deatils of the wsdl : To call the search engine you need to know the port in which the search engine is running. You could get it from the SearchEngineService component of the commerce instance @ /dyn/admin/nucleus/atg/search/routing/SearchEngineService/.  Once you have these details, you could call the search engine with a sample request and a query string to get the response.

Quick Reference to JAVA Servlets

I am writing these quick reference blogs for those who wants to brushup the ideas of each topic. This one will lead you through the basic concepts of JAVA Servlets. How this quick reference guideline is different from the numerous other docs available ?  ,  please read on to get an idea : Servlet Lifecycle : The container will identify the servlet based on the URL Servlet class loading Servlet instantaition Call init method Create a servlet thread for the current request. Before calling service(), will create the request and response objects Call service method Service method will identify whether to call doGet or doPost and call it Call destroy method Different servlet objects : A sinlge servlet instance per JVM ( except for SingleTheadModel) A sinlge HttpSession per web application ( session activation and passivation) A sinlge ServletContext per JVM A sinlge ServletConfig per servlet A sinlge ServletRequest per servlet request Important Servlet rq...

Search Facets - how to create a new search facets in ATG Search

A Facet is a search refinement element that corresponds to a property of a commerce item type. ATG supports the search result refinement using the Faceted Search concept. Read more about facted search @  http://en.wikipedia.org/wiki/Faceted_search . Facet can either be ranges or specific values. Each facet is stored in the RefinementRepository as a separate refineElement repository item. Facets are divided into Global and Local facets. Global facets apply to all the categories and local facets only to the category in which they are created. For example Price/Brand can be considered as the facets that are common for all skus and New Release/Coming Soon can be considered as the facets that are specific to Physical Media products like Vidoe/DVD/Blue-ray/Books. We can use the ATG BCC - Merchandising UI to create facets. The Faceting Property depends on the meta-properties defined in the \atg\commerce\search\product-catalog-output-config.xml ( the def...

Google Chrome shortcut keys

If you are a Google Chromey guy, please find below the list of shortcut keys for some of the most used features  :-) Find more shortcut keys @  http://www.google.com/support/chrome/bin/static.py?page=guide.cs&guide=25799&topic=28650