Which is the best design pattern for developing a search engine site using JSP and servlets? If we have the requirement...
as, an Application server, Webserver, SearchEngine server, and a DB? And which design pattern is good if we use J2EE? A search engine can be thought of as the search mechanism on a host that retrieves information that has already been gathered and indexed. Typically, the engine will send a "robot" out to sites to collect data as new sites show up. This new data is then indexed. Tree-based data structures and/or relational databases are typically used to store the indexes.
A technique known as "document ranking" is being employed by current search engines. Using document ranking, documents are given scores or "rankings" in order to arrange the documents according to how relevant their content is to the search key.
Current research trends are looking into categorizing retrieved data using taxonomies. A taxonomy is a semantic-based categorization of data or services. A categorization approach usually relies on human judgment when categorization is done.
Another project is the XML-based Resource Description Framework, developed by the W3C. RDF seeks to empower search engines by standardizing Web-based metadata. To properly integrate a search engine into a J2EE environment, a number of patterns should be used including:
These patterns should be employed across a four-tier architecture as depicted here.
SearchKeyPro is a commercial search engine written in Java by Astaware.