WAIS Search Help

If you search by specifying more than one keyword, e.g.,

	FOO BAR 

the query is treated like

	FOO or BAR 

There are additional capabilities of the WAIS index:

  PARTIALWORD == The asterisk symbol '*' is parsed if it immediately follows a word,
    as an key to search for all partial words that match the first part of the
    word.  For example, 

	FOO* 

    would match FOO, FOOD, FOOBAR, ...

  BOOLEANS == boolean 'and' and 'not' operators.  For example,

	FOO and BAR

     would match files containing both FOO and BAR.
     
     There are no nesting symbols.  Words are evaluated from left to right in
     the wais query string.  When a 'not' operator is found, the following
     single word is moved into a buffer of not-words.  This not-word buffer
     is evaluated after all the other words are evaluated.  If a document matches
     a not-word, that document is removed from the set of matches (given a
     score of zero).  
     When an 'and' word is found, the word following it is checked for matches
     to documents, and the the set of documents matching this and-word is
     compared to the set of documents matching any words prior to the and-word.
     The intersection of prior and current matching documents is retained, others
     are removed (set to a zero score).  

    For example, this query
       red and blue or yellow but not green and orange or black but not white

    Will be interpreted like this (the parentheses just show the implicit left-to-right
    interpretation):
      (((((red and blue) or yellow) and orange) or black)  not green) not white)

  LITERAL == The quote or double-quote symbols are interpreted, if they occur
     in pairs around a string, as requesting a literal match of the enclosed
     string.  Any special symbols, 'and', 'not', and '*' inside a literal string
     are not interpreted.  The first part of a literal string must be a
     word that is indexed for that data, rather than a delimiter symbol, for
     a match to be found.  For example,

	"FOO BAR"

     would match files containing the string "foo bar".
     
These additional features can generally be mixed in a query, for example:

     Query:  'Df(32)-[34]red' and hum* not Brown