Abstract:
Every presence has needs. A need could be consumer electronics, loans, autos, or knowledge, etc. The presence uses search engines to become knowledgeable about the need. The current search engines are not intelligent. The idea of the invention is to provide more accurate results and semantically linked results through an intelligent index. The invention uses results from known, semantic and unknown indexes with Guiding Information to return the most relevant results to the users.

Description:
PARENTS CASE TEXT 
     Cross-Reference to Related Applications 
       [0001]    This application claims priority of U.S. provisional application, Ser. No. 60/653,349, titled “Intelligent Search With Guiding Info” filed Feb. 16, 2005 by the present applicant. 
         [0002]    This application references U.S. patent application Ser. No. 11/162,735 titled “Using Popular IDs To Sign On Creating A Single ID For Access” filed Sep. 21, 2005 by the present applicant. 
         [0003]    This application references U.S. application Ser. No. 11/161,897, titled “Obtaining A Need With Guiding Information And Credit Worthiness Using A Competitive Process” filed Aug. 22, 2005 by the present applicant. 
         [0004]    This application refers to the U.S. provisional application No. 60/656,645, titled “Guiding Info Tabs With Guide Selection” filed Feb. 23, 2004 by the present applicant. 
     
    
     FIELD OF THE INVENTION 
       [0005]    The present invention relates to searching on the internet or the intranet using the intelligence of the users on the net. 
       BACKGROUND OF THE INVENTION 
       [0006]    Search engines never return what you want. They are good for general searches, but as your use advances, one seems to click on multiple pages, multiple links to get to the relevant information. Ranking by number of links has led to web masters linking with each other, increasing the number of links referencing a page, giving the page a higher rank. A higher rank allows the pages to be the first links in search results but the content might not be what the user is looking for. So when you search for a term as a mortgage loan or escaping xml, etc. you get results that might not be meaningful. 
         [0007]    When a user searches for “Taco Bell” or “Panasonic TV” or “Laptop computer” or “need a mortgage loan”, the user is expecting to get information related to finding the restaurant “Taco Bell”, or buying a “Panasonic TV” or a “Laptop computer” or information about a “mortgage loan”. A user searching for “Panasonic TV” expects to see the popular models, models on sale, market competitive information, information about TVs, LCD TVs, etc. A user searching for a “Laptop computer” is interested in knowing more about a laptop computer, a computer, different models on sale, popular selections, market information, etc. For a “mortgage loan” or “need a mortgage loan” the user might be interested in, what is a mortgage loan?, types of loan products, current interest rates, different mortgage brokers, bankers, market competitive information, etc. A user searching for “relief from cough” or “tantrums 10 yr old” is looking to find information related to finding an immediate relief to the cough or how to overcome the tantrums thrown by the 10 yr old. The search engines with natural language ability do try to understand the context but again might not present the information needed by the user. 
         [0008]    A definite need exists for an intelligent search engine with guiding information that could overcome the problems associated and described above. The idea is to use known information, semantic information and the intelligence of the users on the net to build an intelligent index that could present relevant information. Guiding Information, patent pending U.S. application Ser. No. 11/161,897 with Guide Selections provides expert information about a category and sub category along with market competitive information. So a user searching for a laptop computer can immediately become knowledgeable about buying a laptop and buy one online. A user searching for mortgage loans gets guiding information about mortgage, loans and can proceed on to buying one, while a user searching for “XML escaping”, will get information related to the problem of escaping XML. A primary purpose of the present invention is to solve these needs and provide further, related advantages. 
       BRIEF DESCRIPTION OF THE INVENTION 
       [0009]    Every presence has needs. A need could be consumer electronics, loans, autos, etc. The presence uses search engines to start looking for information related to electronics like laptops, loans, autos, etc. According to Comscore, users typically start their buying process at the search engines with generic terms like “Icd tv” become knowledgeable and then proceed either to a store or buy online. Most searches engines build their indexes on keyword density, page ranking based on number of links, etc. None are intelligent today. The idea of the invention is to provide more accurate results and semantically linked results of what a user is looking for. The invention uses results from known, semantic and unknown indexes with Guiding Information to return the most meaningful and relevant results. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more embodiments of the present invention and, together with detailed description, serve to explain the principles and implementations of the invention. 
           [0011]      FIG. 1  is an illustration of a user searching for the term “xml escaping”. 
           [0012]      FIG. 2  is an illustration of a second user searching for “xml escaping” something similar to what the first user was searching. 
           [0013]      FIG. 3  is an illustration of the search results returned for user 3 . 
           [0014]      FIG. 4  is a flow chart illustrating the index being created, links being added dynamically, and a walk through the search process. 
           [0015]      FIG. 5  is a flowchart illustrating what happens when a user selects a link by clicking on it. 
           [0016]      FIG. 6  is an illustration of the search results shown along with guiding info. 
           [0017]      FIG. 7  is an illustration of the search results shown along with guiding info, a continuation of  FIG. 6 . 
           [0000]    
         
           
                 
               
                 
                 
                 
                 
               
             
                 
                     
                 
                 
                   REFERENCES CITED 
                 
                 
                   U.S. PATENT DOCUMENTS 
                 
                 
                     
                 
               
               
                 
                     
                 
               
            
             
                 
                   6961731 
                   November, 2005 
                   Holbrook 
                   707/102 
                 
                 
                   5511186 
                   April, 1996 
                   Carhart, et al. 
                 
                 
                   6961723 
                   November, 2005 
                   Faybishenko, et al. 
                   707/3 
                 
                 
                   5577241 
                   November, 2005 
                   Spencer 
                   707/5 
                 
                 
                   5265065 
                   November, 2005 
                   Turtle 
                   707/4 
                 
                 
                   5321833 
                   July, 1994 
                   Chang, et al. 
                   707/5 
                 
                 
                   5659732 
                   August, 1997 
                   Kirsch 
                   707/5 
                 
                 
                   5544352 
                   August, 1996 
                   Egger 
                   707/5 
                 
                 
                   5920854 
                   July, 1999 
                   Kirsch, et al. 
                   707/3 
                 
                 
                   5933822 
                   August, 1999 
                   Braden-Harder, et al. 
                   707/5 
                 
                 
                   6070158 
                   May, 2000 
                   Kirsch, et al. 
                   707/3 
                 
                 
                   6145003 
                   November, 2000 
                   Sanu, et al. 
                   709/225 
                 
                 
                   6233571 
                   May, 2001 
                   Egger, et al. 
                   707/2 
                 
                 
                   6256623 
                   July, 2001 
                   Jones 
                   707/3 
                 
                 
                   6275820 
                   August, 2001 
                   Navin-Chandra, et al. 
                   707/3 
                 
                 
                   6078914 
                   July, 2000 
                   Redfern 
                   707/3 
                 
                 
                   6278993 
                   August, 2001 
                   Kumar, et al. 
                   707/3 
                 
                 
                   6317741 
                   November, 2001 
                   Burrows 
                   707/5 
                 
                 
                   6336116 
                   January, 2002 
                   Brown, et al. 
                   707/10 
                 
                 
                   6434548 
                   August, 2002 
                   Emens, et al. 
                   707/3 
                 
                 
                   6442544 
                   August, 2002 
                   Kohli 
                   707/5 
                 
                 
                   6453315 
                   September, 2002 
                   Weissman, et al. 
                   707/5 
                 
                 
                   6480837 
                   November, 2002 
                   Dutta; Rabindranath 
                   707/3 
                 
                 
                   6484166 
                   November, 2002 
                   Maynard 
                   707/5 
                 
                 
                   6490575 
                   December, 2002 
                   Berstis 
                   707/3 
                 
                 
                   6523026 
                   February, 2003 
                   Gillis 
                   707/3 
                 
                 
                   6961723 
                   November, 2005 
                   Faybishenko, et al. 
                   707/1 
                 
                 
                   6526400 
                   February, 2003 
                   Takata, et al. 
                   707/3 
                 
                 
                   6560600 
                   May, 2003 
                   Broder 
                   707/7 
                 
                 
                   6665655 
                   December, 2003 
                   Warner, et al. 
                   707/2 
                 
                 
                   6687696 
                   February, 2004 
                   Hofmann, et al. 
                   707/6 
                 
                 
                   6718324 
                   April, 2003 
                   Edlund, et al. 
                   707/5 
                 
                 
                   6757675 
                   June, 2004 
                   Aiken, et al. 
                   707/3 
                 
                 
                   6763362 
                   July, 2003 
                   McKeeth 
                   707/104.1 
                 
                 
                   6785671 
                   August, 2004 
                   Bailey, et al. 
                   707/3 
                 
                 
                   6799176 
                   September, 2004 
                   Page 
                   707/5 
                 
                 
                   6801906 
                   October, 2004 
                   Bates, et al. 
                   707/3 
                 
                 
                   6947936 
                   September, 2005 
                   Suermondt, et al. 
                   707/7 
                 
                 
                   6947932 
                   September, 2005 
                   Brandin, et al. 
                   707/6 
                 
                 
                   6947920 
                   September, 2005 
                   Alpha 
                   707/1 
                 
                 
                   6963867 
                   November, 2005 
                   Ford, et al. 
                   707/3 
                 
                 
                   6950814 
                   September, 2005 
                   Bergan, et al. 
                   706/55 
                 
                 
                   6801906 
                   October, 2004 
                   Bates, et al. 
                   707/3 
                 
                 
                   6766320 
                   July, 2004 
                   Wang, et al. 
                   707/5 
                 
                 
                   6766316 
                   July, 2004 
                   Caudill, et al. 
                   707/3 
                 
                 
                   6728704 
                   April, 2004 
                   Mao, et al. 
                   707/3 
                 
                 
                   6714934 
                   March, 2004 
                   Fordham 
                   707/100 
                 
                 
                   6704722 
                   March, 2004 
                   Wang Baldonado 
                   707/3 
                 
                 
                   6701312 
                   March, 2004 
                   Lau, et al. 
                   707/5 
                 
                 
                   6578022 
                   July, 2003 
                   Foulger, et al. 
                   706/45 
                 
                 
                   6490577 
                   December, 2002 
                   Anwar 
                   707/4 
                 
                 
                   6278992 
                   August, 2001 
                   Curtis, et al. 
                   707/3 
                 
                 
                   5987446 
                   November, 1999 
                   Corey, et al. 
                   707/3 
                 
                 
                     
                 
               
            
           
         
       
           [0000]    
         
           
                 
               
                 
                 
                 
                 
               
             
                 
                     
                 
                 
                   U.S. PATENT APPLICATIONS 
                 
                 
                     
                 
               
               
                 
                     
                 
               
            
             
                 
                   20050216434 
                   September, 2005 
                   Haveliwala, Taher H.; et al. 
                   707/1 
                 
                 
                   20050120006 
                   June, 2005 
                   Nye, Timothy G. 
                   707/3 
                 
                 
                   20050076021 
                   April, 2005 
                   Wu, Yuh-Cherng; et al. 
                   707/3 
                 
                 
                   20050055340 
                   March, 2005 
                   Dresden, Scott 
                   707/3 
                 
                 
                   20050004905 
                   January, 2005 
                   Dresden, Scott 
                   707/3 
                 
                 
                   20040260688 
                   December, 2004 
                   Gross, John N. 
                   707/3 
                 
                 
                   20040254917 
                   December, 2004 
                   Brill, Eric D.; et al. 
                   707/3 
                 
                 
                   20040243568 
                   December, 2004 
                   Wang, Hai-Feng; et al. 
                   707/3 
                 
                 
                   20040044657 
                   March, 2004 
                   Lee, Jae-Hak 
                   707/3 
                 
                 
                   20040030690 
                   February, 2004 
                   Teng, Albert Y.; et al. 
                   707/3 
                 
                 
                   20040024756 
                   February, 2004 
                   Rickard, John Terrell 
                 
                 
                   20040010484 
                   January, 2004 
                   Foulger, Michael G.; et al. 
                   706/50 
                 
                 
                   20030120653 
                   June, 2003 
                   Brady, Sean; et al. 
                   707/7 
                 
                 
                   20020152199 
                   October, 2002 
                   Teng, Albert Y.; et al. 
                   707/3 
                 
                 
                     
                 
               
            
           
         
       
       
    
    
     OTHER REFERENCES 
       [0000]    
       
         1. Gravano, et al., “STARTS: Stanford Proposal for Internet Meta-Searching,” 1997, ACM, XP000730508, pp. 207-218. 
         2. Gravano, Querying Multiple Document Collections Across The Internet, Phd. Thesis, 1998, UMI Order No. GAX98-10132. 
         3. The metasearch engines, http://www.evolt.org/article/The_Meta_Search_Engines/12/41694/, Oct. 9, 2002 
         4. SDLIP+STARTS=SDSTARTS, A Protocol and Toolkit for Metasearching, 2001, ACM, Pages: 207-214. 
         5. C. Yu, et al., “Efficient and Effective Metasearch for a Large No. of Text Databases,” Tech. report, U. of Illinois at Chicago, 1999, http://citeseer.ist.psu.edu/yu99efficient.html, 2 pages. 
         6. Walter L. Warnick, PhD, et al., “Searching the Deep Web,” D-Lib Magazine, January 2001, Vol. 7, No. 1, 11 pages. 
         7. Lucene API, http://lucene.apache.org/java/docs/index.html. 
       
     
       DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0025]    Embodiments of the present invention are described herein in the context of a method and apparatus for emulating a competitive process. Those of ordinary skill in the art will realize that the following detailed description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of the disclosure. Reference will now be made in detail to the implementations of the present invention as illustrated in the accompanying drawings. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts. 
         [0026]    In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will, of course, be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made in order to achieve the developer&#39;s specific goals, such as compliance with application—and business related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time consuming, but would nevertheless be routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure. 
         [0027]    In accordance with the present invention, the components, process steps, and/or data structures may be implemented using various types of operating systems, computing platforms, computer programs, and or/general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein. 
         [0028]    The purpose and idea of the invention is to use results returned from popular search engines, vertical portals, hidden web, intelligent indexing, Guiding Info, a patent pending, U.S. application Ser. No. 11/162,735, Guide Selections patent pending, provisional U.S. application No. 60/656,645 to present semantically correct and relevant results. 
         [0029]    Search engines index web pages using automated robots or web spiders that traverse one link to another and build a database of these links. They analyze the content of the page for word relevance, number of links to the page, word density, meta tags, links to a particular page, etc. Some of them try to understand the context of the word being searched and try to show words relevant to the search context. 
         [0030]    The idea of the invention is to use these search engines for what has already been built and use the returned results for intelligent indexing. The intelligent index could also use results from its own search engine. 
         [0031]    The intelligent index is made up of multiple indexes, a known index comprising of known terms, a semantic index comprising of semantic relationships and directives, and an unknown index. The known index contains search terms such as “Taco Bell”, “Laptop computers”, “LCD TV”, “Laptop computer”, “Mortgage Loans”, “Transaxtions”, etc. The idea here is that if a user searches for “LCD TV” the results should be related to information about a “LCD TV”, what is a “LCD TV”, different models, popular selections, market competitive information, etc. allowing the user to get the information about buying a “LCD TV” or knowing all about LCD TVs. 
         [0032]    The second index will be a semantic index which will hold terms and their relationships and the context in which they are being used. For example, “xml escaping data” or “escaping xml data” should show results related to escaping in xml. Here the term “xml” holds the weight and it controls the context, while “escaping” is a term with a relationship to “xml” and means escaping special characters within the “xml” context. “data” is again related to the context “xml” and means all data related to “xml escaping”. “xml data” will have a lesser weight and could mean pages with “xml” and any data. Another example would be “tantrums trouble discipline 10 year old”. Here the context is a 10 year old, and trouble, discipline, tantrums are in relationship to the 10 year old. This could be rephrased as 10 year old, need a solution for tantrums, trouble, and discipline. The idea here is that users usually enter search terms as keywords and not Natural Language, so contexts could be made out from the keywords. The search terms could be ended with a phrase such as, “what to do”, for eg. “toothache relief, what to do”, will show results related to finding a relief for a tooth ache. A person looking for information about taxes needs to be given information related to taxes being filed, and maybe from the IRS and the state tax website during tax season. A person looking to solve a problem in Java needs to have information retrieved from the sun.com websites or a person looking to solve a problem in the open source tomcat application server needs to have information searched on the open source related websites and the many discussion groups related to the open source. This would provide more meaningful information. 
         [0033]    The third index is an unknown term index and gets built using the intelligence of the users to associate a meaning to a search term and the results. The idea here is to use the user&#39;s knowledge of the returned results to semantically associate the search terms and the results. A search term starts as an unknown term the first time it is entered by the user i.e., the search term does not exist in the database. The search term is sent to the search engines and the returned results are stored with the search term as the index key. If the user selects any of the results, the selection is given a weight. If another user searches for similar terms, the stored results are returned using the weight to rank the results. Results with more weight will be at the top of the returned results. So as users keep searching and keep selecting the results the index keeps getting built with weights tracking the results. So when users search for a term “xml escaping data”, the most selected pages are shown first. This allows popular pages to be at the top of the search. These pages will be related to the problem of “escaping XML”, “XML data”, “XML data tools”, etc. The next step in this process is to collect all the search terms with the weights and see if they can link together, so that searching for “XML data” will also show terms with “escaping XML” and “XML schema”. 
         [0034]      FIG. 1  is an illustration of a user searching for the term “xml escaping”. The results from the search are shown.  101  is the search term entered by the user.  102  is the results returned from the known index.  103  is the results from the unknown index. There is no guiding info associated with the known index.  104  is the results which the user is interested in viewing. But they are ranked  4  and  5 . Let us assume the user selects  4  to read its contents, and then selects  5 . 
         [0035]    When the user selects  4 , the weight attribute of the SearchDocument is incremented by 0.01. SearchDocument is an object that is stored in an ArrayList. It holds the contents in a Document Object and also has other attributes. weight is one of the attributes. Document is an org.apache.lucene.document.Document object. It has the following fields, “all” field, which holds the search term entered by the user, “id” field which holds the id for the object, “context” field holds a phrase showing the context of the url page, “url” field holds the url to access the pages. An org.apache.lucene.index.IndexWriter object is used to create and manage an index of results returned from the search engines. A Document object is created for each url returned by the search engines, and the Document object is added to the index. A SearchDocument object is created for each Document object and the contents of the Document are copied. The same process is followed when the user selects  5 . 
         [0036]      FIG. 2  is an illustration of a second user searching for “xml escaping”, something similar to what the first user was searching.  201  is the search term entered by the user.  202  is the results returned by the known index.  203  is the search returned by the unknown index.  204  is the new ranking for item number  4  selected by user 1 .  205  is the new ranking for item number  5  selected by user 1 . The weights for  4  and  5  were increased by 0.01 when user 1  selected the links. There is no guiding info associated for the search. 
         [0037]    Let us assume that user 2  now selects the 2nd ranking now (previously number  5 ) and then selects link at ranking  3 . The weight for  2  goes up by 0.01 and so the new weight will be 1.02. The weight for  3  goes up by 0.01 so will increase to 1.01. The weights are incremented by changing the weight attribute value in the SearchObjects for  2  and  3 . If a new user, user 3  searches for “xml escaping”, the following results will be returned, the item at ranking  2  previously, is now at  1 , item at ranking  1  previously is at ranking  2 , and item  3  at ranking  3  previously, is at  3 .  FIG. 3  is an illustration of the search results returned for user 3 .  301  is the search term,  302  is the results from the known index, and  303  is the results from the unknown index.  304 ,  305 ,  306  show the new rankings.  304  is now ranked  1 , was ranked  2  for user 2 .  305  is now ranked  2 , was ranked  1  for user 2 .  306  is at rank 3  for user 2  and user 3 . 
         [0038]      FIG. 4  is a flow chart illustrating the index being created, links being added dynamically, and a walk through the search process.  401  is the step where a user enters the search terms. This could be in a browser window search field.  402  is the step where the search terms are sent to the search engines.  403 , the search term is also looked up in the Known Index for a match. If there is a match, the matched results are added to the returned results.  404 , the results are looked up using the IndexSearcher object. Next a query object is created using the Query.parse method with the search term as one of the parameters. The other parameters are the field name, and the type of Analyzer. The analyzer used is a PorterStemAnalyzer. A BoostHitCollector is used to collect the results from the query. The searcher object is used to query for the search results. The Query object and the BoostHitCollector object are the parameters for the search. The results of the query are obtained by calling the BoostHitCollector getResults method. This returns a binary tree, TreeSet object. The tree has to be traversed to obtain the results. During the search process, the BoostHitCollector collect method is called with doc index and the score for the item. The collect method checks to see if the score is greater than 0.75 so as to include the results; the doc index is used to obtain the Document object, and the id field is retrieved. This id field is then used to index into the ArrayList of SearchObjects. The SearchObject is then added to another ArrayList which is then added to a TreeSet object to hold the results. 
         [0039]      405 , the SearchObject has an attribute, guidinginfo, and if this is true, the category_id attribute holds the category for the guiding info, and the sub_category_id attribute holds the sub_category_info.  406 , if the guidinginfo attribute is true, the guiding info is also shown with the search results. 
         [0040]      407 ,  408 ,  409 ,  410  look up information from the semantic index to find matches with a semantic relationship. The semantic index match might involve transforming the search terms with additions or deletions or rewording to enable a semantic search. For eg., the search terms “xml escaping” could be transformed to “xml and (escaping or encoding decoding or &amp;amp)”, all the terms associated with xml to query the search engines. A SemanticAnalyzer is used to transform the search terms entered by the user. The search terms are parameters to the contextTerms methods which returns the transformed terms that can be sent to search engines or looked up in the indexes. 
         [0041]      411 , the search terms are looked up in the Unknown Index. The Unknown index again uses the IndexSearcher and a PorterStemAnalyzer. Next a query object is created using the Query.parse method with the search term as one of the parameters. The other parameters are the field name, and the type of Analyzer. A BoostHitCollector is again used to collect the results from the query. The searcher object is used to query for the search results. The Query object and the BoostHitCollector object are the parameters for the search.  412 , the results of the query are obtained by calling the BoostHitCollector get results method. This returns a binary tree, TreeSet object. The tree has to be traversed to obtain the results. During the search process, the BoostHitCollector collect method is called with doc index and the score for the item. The collect method checks to see if the score is greater than 0.75 so as to include the results; the doc index is used to obtain the Document object, and the id field is retrieved. This id field is then used to index into the ArrayList of SearchObjects. The SearchObject is then added to another ArrayList which is then added to a TreeSet object to hold the results. The TreeSet object uses the comparator method to sort the results. The comparator object, BoostComparator is supplied to the TreeSet object at creation. The comparator method has two parameters, which are both ArrayLists. The first object in the two ArrayLists are retrieved, and this should be the SearchObject added to the ArrayList in the BoostHitCollector collect method. The weight attribute in the SearchObjects are compared and a 0, 1 or −1 is returned. The weight attribute is set based on the user selecting a link. 
         [0042]      413 , the results are returned as data or as HTML page entries to the user. 
         [0043]      414 , if no results are found in the Unknown Index, the results returned by the Search Engines are looked at, and these are added to the indexes. Adding to the Unknown Index is done through by creating a new Document object. The search terms are added to the “all” field as the value to be indexed. A Text field is used for indexing. Next a new ID is requested from the ID generator, and this is added to an “id” field. The “id” field is again a Text field. The URL from the search engine is added to the “url” field. A Keyword field is used to hold this. The context text with the URL is stored in a “context” field. The context field is again an UnStored field. The Document object is then added to the index using the IndexWriter. Before the document object is added, a check is made so that duplicate URLs are not stored. 
         [0044]    It should be noted that in the described embodiment, an object oriented programming environment has been described to discuss the present invention. Object Oriented Constructs such as methods, object, and exceptions have been used to describe how the invention works. However, this can also be implemented in other programming environments and languages. It should also be noted that this is an illustration of one embodiment, and the search and insertion into the indexes can be done in parallel, the insertion might also be done only if needed as by feedback and should not be limited to as shown. 
         [0045]      FIG. 5  is a flowchart illustrating what happens when a user selects a link by clicking on it.  501 , the user clicks on a link.  502 , the control is forwarded to InternetForwardController object.  503 , the ID is retrieved using the getParameter method.  504 , the forward url is retrieved using the getParameter.  505 , the search object is retrieved from the HttpSession, and the incWeight method is called using the id as the parameter.  506 , the incWeight method indexes into the ArrayList of SearchObjects and retrieves the SearchObject for the id. The weight attribute is incremented by 0.01.  507 , the forward url is decoded using URLDecoder and the control is passed to the url page using the sendRedirect method. 
         [0046]      FIG. 6  is an illustration of the search results shown along with guiding info.  601  is the search terms entered by the user, “Panasonic TV”.  602  is the results returned from the known index. The control is transferred to the InternetSearchController object, when the user hits enter key or search button The InternetControllerObject creates a Search object if one has not been created. A search object reads the documents in the existing indexes on disk and initializes the ArrayList. The InternetSearchController then makes the search needed to search Google and Yahoo search engines. The search request is sent to Google and Yahoo search engines through searchGoogle and searchYahoo methods. The results returned from google are added to the UnknownIndex through indexGoogle method. This checks if the results already exist in the index, if not they are added to the index. The results from the Knownindex are obtained through getKnownIndexResults method. The getKnownIndexResults method returns a SearchDocument object if guidinginfo needs to be shown. The SearchDocument object contains the category_id and sub_category_id of the guiding info to be shown.  603  is the results from the Unknownindex.  604  is the guiding info for “Panasonic TV” the search term entered by the user. The guidinginfo is like an expert engine, the next generation comparative shopping portal, and provides information on the selected category and sub category along with a guide selection of popular choices, the lowest and average prices for the popular choices locally as well as nationally.  605  is information about the sub category “Panasonic TV”.  606  is the popular guide selections.  FIG. 7  is an illustration of the bottom part of the browser from  FIG. 6. 701  is the results returned from Google search engine.  702  is the results returned from Yahoo search engine.  703  is the lowest and average prices for the popular guide selection. The selection shows all the popular “Panasonic TV” models. 
         [0047]    It should be noted that in the described embodiment search engines google and yahoo have been shown. This is an illustration of one embodiment and other search engines including its own search engines can be used to build the intelligent index. 
         [0048]    While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art having benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims. 
         [0000]    
       
         
               
             
               
               
             
           
               
                   
               
               
                 Definition List 1 
               
             
          
           
               
                 Term 
                 Definition 
               
               
                   
               
               
                 GET 
                 A HTTP method to send/get data from a 
               
               
                   
                 server 
               
               
                 POST 
                 A HTTP method to send/get data from a 
               
               
                   
                 server 
               
               
                 HTTP 
                 A TCP/IP based text request/response 
               
               
                   
                 protocol that allows web browsers to show 
               
               
                   
                 data from a server called a web server 
               
               
                 Session 
                 A J2EE HTTP session object, and provides a 
               
               
                   
                 way to identify a user across more than one 
               
               
                   
                 page request or visit to a Web site and to 
               
               
                   
                 store information about that user. 
               
               
                 J2EE 
                 Java 2 Platform, Enterprise Edition defines 
               
               
                   
                 the standard for developing component- 
               
               
                   
                 based multitier enterprise applications 
               
               
                 Jsp 
                 JavaServer Pages technology provides a 
               
               
                   
                 simplified, fast way to create dynamic web 
               
               
                   
                 content 
               
               
                 lucene 
                 An open source search API 
               
               
                 Salmon Open Source 
                 An open source MVC J2EE server framework 
               
               
                 Framework 
                 for building J2EE applications 
               
               
                 URL 
                 Uniform Resource Locator 
               
               
                 XML 
                 Extensible Markup Language 
               
               
                 TCP 
                 Transmission Control Protocol 
               
               
                 IP 
                 Internet Protocol 
               
               
                 Java 
                 An object oriented programming language 
               
               
                 MVC 
                 Model View Controller paradigm 
               
               
                 Web 
                 World wide web, www, also known as the 
               
               
                   
                 internet 
               
               
                 Browser 
                 A Graphical User Interface for viewing 
               
               
                   
                 content called html on the web 
               
               
                 ENeedsOnline 
                 An online marketplace where buyers and 
               
               
                   
                 sellers can make available a need, 
               
               
                   
                 http://www.eneedsonline.com 
               
               
                 BoostHitCollector 
                 A Java Object that is used to collect search 
               
               
                   
                 the results 
               
               
                 Commscore 
                 Market research firm 
               
               
                 Google 
                 http://www.google.com 
               
               
                 Yahoo 
                 http://www.yahoo.com