Multiple Source Your Search Engine Using XML

C. Daniel Chase

The University of Tennessee at Chattanooga

The Process

  • Choose What you want to search
  • Research the APIs available to access the data
  • Get your tools together
  • Pick one easy source to start with
  • Make an easy success by testing with GET query strings

The Process

  • Build a form to create the query string
  • Design the XSL to do your layout
  • One down... add another!
  • Wrap them all in a template

Useful Sources of Data

  • Personnel directory
  • Expert source directory for University Relations
  • Database of departmental units
  • Database of web sites
  • Old-fashioned web search engine

Choosing Sources

  • If you have ever had to search for it...
  • It's available electronically...
  • It's public information

The APIs

  • LDAP has tools available in many languages
  • Databases use well-known SQL interface
  • Ultraseek has an XML API: saquery.xml
  • QuickFinder comes with XML template

The Tools

  • The hammer--PHP 5
    • XSL Extensions enabled
    • Our's custom compiled
  • MySQL
  • eDirectory

The first attempt--Ultraseek

  • Build a test query string
  • http://search.tennessee.edu/saquery.xml?qt=university+relations
  • XML Results
  • That was easy!

Create Form to Submit Query

Create the XSL for the Output

  • Think one step at a time...
  • Repeatable blocks...
  • Override XSL defaults
  • The final XSL for Ultraseek
  • The tricks of EXSLT for date-timestamps & string splitting
  • Our site will use Novell QuckFinder for web search results
  • The live form

That was easy! Let's do another!

  • Once you have the XML-XSL processing down, adding data sources is easy
  • Learn to think in XML
  • Visualize the structure of your data
  • Think in repeatable blocks
  • Build you XML using DOM or SimpleXML objects if using PHP

Our other data sources

  • LDAP to personnel directory
  • LDAP to expertise information
  • MySQL to department directory data
  • MySQL to registered web site directory

Wrap It Up

Questions?

  • Next time...
  • Object Oriented
  • Plan more...
  • Do it right from the begiining!