Brettb.Com
  HOME | ABOUT ME | BIOTECHNOLOGY | ARTICLES | GALLERY | CONTACT
Search: Go
TECHNICAL ARTICLES
 ASP
 ASP.NET
 JavaScript
 Transact SQL
 Other Articles
 Software Reviews

PHOTO GALLERIES
 Canon EOS 300D Samples
 Akihabara Maids!
 More Galleries...

TRAVEL LOG
 2009: China
 2008: Tokyo
 2007: Tokyo
 2006: Hong Kong
 2005: New York City

MORE STUFF
 Search Engine Optimisation
 Build an ASP Search Engine
 My Tropical Fishtank
 Autoglass
 SQL Month Name
 SQL Get Date Today
 SQL Year Month
 Other New Stuff...

POPULAR STUFF
 Regular Expressions
 Index Server & ASP
 JavaScript Ad Rotator

Home > Articles

Using the Site Server Search facility to search custom Meta Tags

An interesting feature of the Site Server 3.0 Search facility is the ability to search custom Meta Tags. A common use of this facility is to enable users of a web site to narrow down their searches to a particular part of a website.

Restricting searches

In a well organised site, you could restrict searches by only allowing searches of specific file paths. For example, the following will restrict searches to the financial section of the www.foo.com website:

Util.AddScopeToQuery Q, "http://www.foo.com/financial/", "deep"

However, if your content is distributed in many different folders (or even on different servers) then a file path restriction is not appropriate.

A possible alternative is to tag certain pages with specific Meta Tags. The Tag Tool that is supplied with Site Server allows this to be done for entire websites at a time. Obviously, if you use Perl or some other type of scripting to generate static web pages from databases then adding Meta Tags is very straightforward.

Searching custom Meta Tags

The first stage is to add the custom Meta Tags to your web page. So if you want to tag the Customer Support and Financial Services pages respectively, add the following HTML to each:

<META NAME="Department" CONTENT="Customer Support">

<META NAME="Department" CONTENT="Financial Services">

Having done this, you will have to rebuild the Search Catalog for that website.

The ASP code that will create a basic search results page that will allow searching of these pages is below. Be sure to change the value of the Q.Catalog to the name of your Search Catalog!

<%
set Util = Server.CreateObject("MSSearch.Util")
set Q = Server.CreateObject("MSSearch.Query")

Q.Catalog = "
catalog_name"
Q.SortBy = "
rank[d]"
Q.MaxRecords = 300
Q.Columns = "
DocTitle, DocAddress, size, write, rank"
Q.Query = "
@Meta_Department Financial Services"

Set RS = Q.CreateRecordSet("sequential")

Do while not RS.EOF
Response.Write "<A HREF=" & Chr(34) & RS("DocAddress") & Chr(34) & ">" & RS("DocTitle") & "</A><BR>"
RS.MoveNext
Loop

Set Util = nothing
Set Q = nothing
%>

Note that the search query specifies that the Department Meta Tag should be searched for instances of “Financial Services”. If you want to restrict searching to the Customer Support pages instead of the Financial Services pages, then modify the code appropriately:

Q.Query = "@Meta_Department Customer Support"

You could also search other custom Meta Tags in a similar way by adding the Meta_ prefix to them. So if an online store wanted to search the “ProductArea” Meta Tag, then you could use a Query such as:

Q.Query = "@Meta_ProductArea Toys"

Retrieving contents of Meta Tags

If you want to retrieve the contents of Meta Tags and display them with the search results, then you need to use the following procedure, otherwise you may see an error similar to this:

ADODB.Fields error '800a0cc1'
ADO could not find the object in the collection corresponding to the name or ordinal reference requested by the application.
/finance/search/default.asp, line 164

First, add Meta_Department to the Q.Columns line of the ASP code:

Q.Columns = "DocTitle, DocAddress, size, write, rank, Meta_Department"

Once you have done this, in the Site Server Administrator Microsoft Management Console (MMC), go to Console Root > Search > your_machine_name > Catalog Build Server > your_catalog_name > Schema. In the Catalog Schema part of the MMC, click on the Add button. When the Add Schema Column part of the MMC appears, add the following:

  • Property name = Meta_Department
  • Property set = click on Standard property set, and change drop-down list to HTML Meta
  • Property ID = department
  • Type = change the drop-down list to String
  • Index = Yes
  • Retrieve = Yes

When you have clicked on the Submit button, you are given the choice of changing the Master Schema (this changes all the Catalogs on that Search server) or creating a Custom Schema (this only changes the current Catalog). Having changed the Schema, you will then have to rebuild the Search Catalog.

If you subsequently modify the ASP code to the following, each search result will then display the contents of the Department Meta Tag:

Response.Write "<A HREF=" & Chr(34) & RS("DocAddress") & Chr(34) & ">" & RS("DocTitle") & "</A> (" & RS("Meta_Department")& ") <BR>"

Further reading

This is a brief introduction to the use of custom Meta Tags with Site Server. On well managed sites the use of such searches could make it a lot easier for your web site users to quickly find the content they are looking for.

You might also like to invest in one of these featured books:

Beginning Site Server 3.0  Professional Site Server 3.0

  Site Map | Privacy Policy

All content is 1995 - 2012