My Contribution  

by Nong Lin

    Contents of this page:

  1. "Meta-Search" Engines
  2. Search Engine
  3. My Search Engine Simulator
  4. Brief Background

"Meta-Search" Engines

What are "Meta-Search" engines?

Meta-search engines (also know as multi-threaded engines)search several major engines at once. Meta-search engines do not crawl the Web or maintain a database of web pages. Instead, they act as a middle agent, passing on the query to the major engines and then returning the results.

Because search engines vary in ability to interpret complex searches (See Feature Chart), meta-search engines work best with simple searches.

Recommended Meta-Search Engines and Their Features

Following are some metasearch engines. Features of these engines are summarized. Take a look and try one of them.

Our Meta-Search Engines

Take a look and try this 3D virtual meta-search engine.


Search Engine

What is the search engine?

In a meta-search engine, you submit keywords in its search box, and it transmits your search simultaneously to several individual search engines. So what is the search engine?

A search engine is a database and the tools to generate that database and search it.

A search engine finds information for its database by accepting listings sent in by authors wanting exposure, or by getting the information form their "Web crawlers", "spiders", or "robots" programs that roam the Internet storing likes to and information about each pages they visit. (referring to this site)

More information about Search Engine go to this site.

Search Engine Simulator

This is an example from Delore Software company, named "Search Engine Simulator". Try it and see how a Web Crawler works. User enter the URL which he want to view, the Web Crawler get related information on this URL site.


My search engine simulator ------ searchClient

To get some idear about search engine, I created a package which has same functions as the seach engine simulator. Download and Try it

This is a simple graphical interface to HTTP servers. This client reads the request line from the user, then sends them to the server, displaying the result in a scrolling textarea.

Function Discription

NetworkClient.java

  • Create a Socket object
  • establish the connection between client and server

    The Source

    SocketUtil.java

    create PrintStreams and DataInputStreams associated with a socket.

    The Source

    HttpClient.java

  • Create a SocketUtil object
  • write user input to server
  • read server response
  • show the response in TextArea

    The Source

    searchhClient.java

  • Build GUI interface ---- Applet Panel
  • Read user input --- port, requestline
  • Applet run HTTP client --- HttpClient()

    The source

    summaryResult.java

    create a summaryResult object that has a method to get title.

    The Source

    LabeledTextField.java

    A textfield used by searchClient to build User GUI interface.

    The Source

    QuittableFrame.java:

    Create a Frame that you can actually quit.

    The Source

    Note: This package was modified from CORE Web Programming.

    Brief Background behind this package

    (1) Web Client/Server Communication and HTTP protocol

    The HyperText Transfer Protocol(HTTP) is the language used by Web browsers to communicate with WWW servers. The cient (program) first opens a socket connection to an HTTP server, which by default is on port 80. It then issues a command (usually a request for a document) by sending a request line, some optional request headers, and a blank line. The HTTP server then sends a response line, some response heads, a blank line, and a document, then close the connection.

    (2) Implementing Web communication in Java

    In low level, Java offer a package java.net, especially, the socket class. (referring to this site). In addition to sockets, Java provides two higher-level packages for communicating with specific types of systems. The Remote Method Invocation (RMI) package lets you easily access methods in remote Java objects. The Java DataBase Connectivity API provids access to a wide variety of relational databases using a standard interface, letting you easily create Java programs that are integrated with databases on local or remote systems.