How to create a search engine for your DotNetNuke site
Zoom Search Engine is a software package that allows you to create a powerful custom search engine for your website. It is unlike other search solutions in that it gives you full control over its indexing capabilities, and there is no advertising or annual fees, while being one of the easiest to use and most feature packed solutions on the market. More on the advantages of using Zoom here.
The following tutorial explains how to use Zoom with your DotNetNuke website. Since many DotNetNuke (DNN) users find the built-in search functionalities of DNN Search to be lacking, they have found that Zoom is far more capable in providing a much more effective (both in relevance and performance) search function to their DNN website. We provide this tutorial to explain some common details and steps to get a working Zoom Search Engine up and running, and integrated with your DNN site as quickly as possible.
What you will need
Zoom is free for small websites of up to 50 pages. For larger sites, commercial editions are available. For most people, the Professional Edition is suitable, which indexes up to 50,000 pages. Detailed comparison of the different editions available can be found here.
Using Zoom and indexing your website
Using Zoom on a DotNetNuke website is much the same as using it on any other website, so you will find much more detailed information on installing and running Zoom in the Users Guide (free PDF download). We recommend referring to the Users Guide for most instructions and taking note of the following tips for guidance/reference for DNN specific details.
But to summarize, Zoom has two main parts. The Indexer software which runs on your desktop computer, scans your website and generates a set of "index files". These files are then uploaded to your website and provide the searching functionality. You will also be using the Indexer to update your search engine when you make changes to your website in the future.
Once the files are correctly uploaded, you will be able to access your new search engine by entering in the URL to the search page in your web browser. For example, if you uploaded your files to a sub-folder named "search", your new search page will be at http://www.mysite.com/search/search.asp
Enter in some search words and give it a try!
As you will notice, the default search page is fairly blank, as it has not yet been customized to suit the look and feel of your website. In addition to this, we would want to integrate the search page within your DNN site, and we will explain this below.
Integrating your Zoom search page into DNN
At this point, you should have a working search page which you can access and perform search queries on as seen above. You can use your search page just as it is, and simply modify the "search_template.html" file to match the look of your site. However, if you want to further integrate the search page inside your DNN website (so that it will maintain the same skinning and various modules you are using), then read on.
First, we need to "Add" a new page in DNN to serve as your new Search Page. This will contain a search form, and your search results. You can name this something appropriate like "Site search".
On this new page, we will need to add an IFRAME module (if you do not see "IFRAME module" in the Modules list, you will need to login as "host" and "Find/Install additional modules"). You can title this added module as "Search" or something similar. Now click on the "Edit IFrame Options" button.
Here you should specify the Link Type as a URL, and copy and paste the URL of your working search page (from before) in the "Location:" text box as seen below. For the width, specify "100%" and we recommend a decent height of something around 600 pixels (or enable Auto height if your search page is on the same domain as your DNN site).
Next, click on the expand box next to the "QueryString Parameters" heading. We will need to add all the parameters that Zoom will use so that the page can pass these parameters along to the actual "search.asp" script within the IFrame. Click on the "Add QueryString Parameter" link and specify the following:
This allows the main search query to be passed to this page. If you would like to have more parameters in your custom search forms (search forms that you will place on other pages of your site), then you will need to add them here as well. If you are not familiar with the idea of the custom search form or what other parameters are necessary, don't worry, as this will be explained a little later below and you can come back here to add more parameters as needed.
Now click "Save" to return to your search page. You should now see your Zoom search page loaded within the IFrame of your DNN search page!
Run a few test searches and you should find that everything should be working within your new DNN search page.
If you wish to modify the text or layout (or the colours and fonts of the search results) within the IFrame, you will need to change the "search_template.html" file. Please see chapter 6 of the Users Guide ("How do I customize the look of my search page?") for more information.
Note: You may notice that when you click on a search result, the link opens within the IFrame of the search page. If you wish to change this behaviour, go to the Zoom Configuration window, and select the "Search Page" tab. Under "Results linking", change the selected option to "Frame or window:" and enter "_top" (without the quote characters, but note that the underscore is important) in the text box next to this option. Re-index your website and upload the files for this change to take effect. You will now find your search result links will open outside of the IFrame.
Additional note: If you make the IFRAME very tall, you'll find that when you click on the "Next >>" results link down at the bottom of the search results page, the browser would not scroll back to the top of the frame automatically. To fix this, edit your "search_template.html" file and replace the <body> tag with the following:
Adding search boxes to your other web pages
You may now be wondering how you can add search boxes on the other pages of your website. These boxes are often a simpler, smaller version of the search box you see on the search page that allows people to submit a simple search query from any where on the site. It will then take them to this search page with their results.
To do this, you simply need to add the following HTML in any existing Text/HTML module (or a new Text/HTML module):
You will need to replace the URL in the above HTML (in green) with the actual URL to your DNN search page that you created earlier (easy way to find this is to go to your new search page, and copy the URL from the top bar of your browser). Replace the URL in the above HTML with your own, but make sure to retain the "?zoom_query=" part at the end.
(Note that the above search form does not take over the "Enter" key. We provide this minimal HTML to prevent disturbing other other form elements on the same page. But if you wish to be able to submit your search by pressing the "Enter" key, see below)
Save your changes, and you should now have a working custom search box on your DNN page!
You can place this search box on any of your other pages, or make it part of your template/skin.
If you wish to create a custom search box which has more options (such as changing between "match any search words" and "match all search words", or having category boxes, etc.) you should refer to this FAQ support page on defining the search form HTML. As mentioned before, this involves the use of additional "zoom_" style parameters and you'll need to make sure you have them added to the QueryString parameter section in the IFrames settings (see above).
Now you have a very own custom search engine as part of your DotNetNuke site! I hope the above has been helpful in getting you up and running. There are many options and configurations possible with Zoom which you can fine-tune to your heart's content, including highlighting, categories, and more. Look into the Users Guide for details.
Enjoy your new search engine!
Using the Enter key with your search form
As explained in the section above ("Adding search boxes to your other web pages"), you will need to add special HTML in order to add a search box to the other DNN pages of your site. The HTML provided in the above section does not accept the Enter key on your keyboard. This is to avoid disturbing any other form elements on your page which might require/expect the Enter key.
However, if you wish to make it so that the Enter key will submit the query in the search box, then you should replace this line in the abovementioned HTML:
With the following:
Again, make sure to replace the text in green with the URL to your DNN search page.
Return to the Zoom Search Engine website