Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
XML is used for structuring the data, SOAP is used to transfer the data, WSDL is used for describing the services, and UDDI is used to get a list of services available. Web Services allows applications to communicate with each other without worrying about their hardware systems, operating systems, and programming languages.
Unlike the older model, Web Services does not provide a user interface but exposes the business logic, which can be programmed; therefore, the user is free to add his own interface to the application.
But before we can access Google's Web APIs service, we will have to create a Google account and obtain an license key that will allow us to run about 1,000 automated queries a day. Please visit http://www.Google.co.nz/apis/ to create a Google account. After you have entered your e-mail address and password, Google will mail you a license key, which we'll use in our application.
Now that you have received your license key, we will create an application in Visual Basic .NET to create a customized search and a spelling checker that uses the Google Web APIs Service.
Open your Visual Studio .NET, create a new Windows Application Project, which we will call googleapi, and then click OK.
Adding a Web Reference to Google Web APIs Service
We will now add a Web Reference to Google Web APIs Service. Well, this is almost like adding a reference to a COM/ActiveX object, but when we add a Web Reference we now have access to all the XML Web Services on the Google server. Open your Solution Explorer, right-click References, and then click Add Web Reference. Alternatively, you could select Project menu and click Add Web Reference.
In the Add Web Reference window, type http://api.Google.com/GoogleSearch.wsdl in the address bar. Please make sure you type exactly as shown; this URL is case sensitive.
After you enter the URL and press Enter, the Google Web Service is loaded. You should see a screen like Figure 2. Also, the Add Reference button is enabled. Click Add Reference button to add this Web reference to our project.
In the Solution Explorer Window, click the Web Reference to see a Google Web Reference, which we have added. Let's rename that to Google by right-clicking it and clicking Rename.
Create a User Interface as shown below with the flowing controls and given names.
a) For Searching on the Engine txtSearch - TextBox lbl_TotalFound - Label btn_Search - Button b) For Checking Spelling txt_CheckSpelling - TextBox lbl_CorrectSpelling - Label btn_CheckSpelling - Button
Type the following code in the click event of the Google Search Button (btn_Search):
Private Sub btn_Search_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btn_Search.Click Dim MyLicenseKey As String ' Variable to Store the ' License Key ' Declare variable for the Google search service Dim MyService As Google.GoogleSearchService = New _ Google.GoogleSearchService() ' Declare variable for the Google Search Result Dim MyResult As Google.GoogleSearchResult ' Please type your license key here MyLicenseKey = "tGCTJkYos3YItLYzI9Hg5quBRY8bGqiM" ' Execute Google search on the text enter and ' license key MyResult = MyService.doGoogleSearch(MyLicenseKey, _ txtSearch.Text, 0, 1, False, "", False, _ "", "", "") ' output the total Results found lbl_TotalFound.Text = "Total Found : " & _ CStr(MyResult.estimatedTotalResultsCount) End Sub
Type the following code in the click event of the Check Spelling Button (btn_CheckSpelling):
Private Sub btn_CheckSpelling_Click(ByVal sender _ As System.Object, _ ByVal e As System.EventArgs) _ Handles btn_CheckSpelling.Click Dim MyLicenseKey As String ' Variable to Store the ' License Key ' Declare variable for the Google search service Dim MyService As Google.GoogleSearchService = New _ Google.GoogleSearchService() ' Declare variable for the Google Search Result Dim MyResult As String ' Please type your license key here MyLicenseKey = "tGCTJkYos3YItLYzI9Hg5quBRY8bGqiM" ' Execute Google search on the text enter and ' license key MyResult = MyService.doSpellingSuggestion( _ MyLicenseKey, _ txt_CheckSpelling.Text) ' output the results lbl_CorrectSpelling.Text = "Did you Mean : " & MyResult End Sub
Now we have finished coding our application. Run the application and type some text to search in the text box. Click the Google Search button to see the number of results found. Also, try the Google spell check.
Now you must have realized how simple it is to incorporate Google Web APIs Service in your application. Here are few things you could do with this service:
- Issue regularly scheduled search requests to monitor the Web for new information on a subject.
- Perform market research by analyzing differences in the amount of information available on different subjects over time.
- Search via non-HTML interfaces, such as the command line, pagers, or visualization applications.
- Create innovative games that play with information on the Web.
- Add Google spell-checking to an application.
There are a few more things I would like to say before I sign off:
Google Web APIs support the same search syntax as the Google.com site and provide each developer who registers to use the Google Web APIs service a limit of 1,000 queries per day.
Please visit http://www.google.com/apis/api_faq.html if you have further questions about Google Web APIs Service.
About the Author
Jayesh Jain works as a consultant in Auckland, New Zealand. He has several years of n-Tier development experience and is currently working with Visual Basic.NET to develop interactive client solutions. He has a passion for Web development and in his spare time he likes to write articles. You can contact him here.