In a previous article (A Text-Based Search Engine), I demonstrated how to search through a list of files in a particular folder, returning a link to those files that contained the text of a search entered by the user. This article presented a simple text-based search engine, but lacked many features. For example:
- If there are a large number of files in the folder
that match the search string entered by the user, a lengthy list will be returned.
- The search engine would not recurse the subfolders of the particular folder being searched.
- The user could only enter a single statement to be searched on. The user could not have a search executed on term1 and term2.
This article presents an improved text-based search engine, which offers the following enhancements:
- A paged listing of results - the user only sees 10 hits at a time. If there are possibly more
hits, a link titled
Show more resultsis presented.
- The search engine will recursively search through all subfolders
- The user may enter a number of search terms, each separated by a space, and apply either
ORboolean logic. For example, if the user chose to seach for: "
ASP database" with the
ANDboolean logic choice, only those files that contained both
databasein them would be listed.
The code and interface presented in this article are the code and interface used on the new, dedicated server. This dedicated server is still in a testing mode (as of 12/4/99), but the search interface can be accessed at http://184.108.40.206/search/.
On the right, you can see a screenshot of the search interface. There are three form elements: a
text box for the user to enter his search terms, a list box for the user to select what boolean operator
they wish to apply to their search string, and a list box to allow the user to choose what section of the
site he wished to search. Also included (but not shown in the screenshot) is a
button for the user to click once they are ready to execute their search. The following code contains
the HTML used to create the screenshot:
Note that this form sets the
METHOD=GET. I do this so that all of the information is passed
through the querystring. This allows the user to bookmark a particular search, or email the search results
URL to a friend. Also note that the form, when submitted, is sent to
Search.asp in Part 2. Take a moment
to note the name of each form field. For example, the list box to select which section to search is
selSearchWhere. Once you have done this, proceed to Part 2!