Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > a2d29ba77c8fe4d655c72d0b897f51ad > files > 322

mnogosearch-3.3.8-3mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Searching documents</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="mnoGoSearch 3.3.8 reference manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Indexing multilingual servers"
HREF="msearch-vary.html"><LINK
REL="NEXT"
TITLE="How to write search result templates
    
  "
HREF="msearch-templates.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="mnogo.css"><META
NAME="Description"
CONTENT="mnoGoSearch - Full Featured Web site Open Source Search Engine Software over the Internet and Intranet Web Sites Based on SQL Database. It is a Free search software covered by GNU license."><META
NAME="Keywords"
CONTENT="shareware, freeware, download, internet, unix, utilities, search engine, text retrieval, knowledge retrieval, text search, information retrieval, database search, mining, intranet, webserver, index, spider, filesearch, meta, free, open source, full-text, udmsearch, website, find, opensource, search, searching, software, udmsearch, engine, indexing, system, web, ftp, http, cgi, php, SQL, MySQL, database, php3, FreeBSD, Linux, Unix, mnoGoSearch, MacOS X, Mac OS X, Windows, 2000, NT, 95, 98, GNU, GPL, url, grabbing"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#EEEEEE"
TEXT="#000000"
LINK="#000080"
VLINK="#800080"
ALINK="#FF0000"
><!--#include virtual="body-before.html"--><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
><SPAN
CLASS="application"
>mnoGoSearch</SPAN
> 3.3.8 reference manual: Full-featured search engine software</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="msearch-vary.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="msearch-templates.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="doingsearch"
></A
>Chapter 10. Searching documents</H1
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="msearch-doingsearch.html#search"
>Using search front-ends</A
></DT
><DT
><A
HREF="msearch-templates.html"
>How to write search result templates
    <A
NAME="AEN4907"
></A
></A
></DT
><DT
><A
HREF="msearch-html.html"
>Designing <TT
CLASS="filename"
>search.htm</TT
></A
></DT
><DT
><A
HREF="msearch-templates-oper.html"
>Template operators</A
></DT
><DT
><A
HREF="msearch-rel.html"
>Ranking documents
     <A
NAME="AEN5668"
></A
></A
></DT
><DT
><A
HREF="msearch-track.html"
>Tracking search queries
    <A
NAME="AEN5917"
></A
></A
></DT
><DT
><A
HREF="msearch-srcache.html"
>Search results cache
    <A
NAME="AEN5944"
></A
></A
></DT
><DT
><A
HREF="msearch-fuzzy.html"
>Fuzzy search</A
></DT
></DL
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="search"
>Using search front-ends</A
></H1
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-perform"
>Performing search</A
></H2
><P
>Open your preferred front-end in Web browser:
<PRE
CLASS="programlisting"
>&#13;http://your.web.server/path/to/search.cgi
</PRE
>
or
<PRE
CLASS="programlisting"
>&#13;http://your.web.server/path/to/search.php
</PRE
>
or
<PRE
CLASS="programlisting"
>&#13;http://your.web.server/path/to/search.pl
</PRE
>
    </P
><P
>To start search, type the words you want to
    find and press the <TT
CLASS="literal"
>SUBMIT</TT
> button.
    For example, ``<KBD
CLASS="userinput"
>MySQL ODBC</KBD
>''.
    <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> will find
    documents having the words <TT
CLASS="literal"
>MySQL</TT
>
    and/or <TT
CLASS="literal"
>ODBC</TT
>. The best matching
    documents will be displayed in the top of the
    search results.
    <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
     The quote signs <TT
CLASS="literal"
>``</TT
> and <TT
CLASS="literal"
>''</TT
>
     are not parts of the search query. They are used
     in this example and in the other examples given
     in the manual to separate search queries
     from the other text.
    </P
></BLOCKQUOTE
></DIV
>
    <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
    <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> works case insensitively.
    The case of the letters in a search query does not matter.
    </P
></BLOCKQUOTE
></DIV
>
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-params"
>Search parameters
    <A
NAME="AEN4282"
></A
></A
></H2
><P
><SPAN
CLASS="application"
>mnoGoSearch</SPAN
> front-ends
    support the following <ACRONYM
CLASS="acronym"
>CGI</ACRONYM
> query string
    parameters (which can be used in the <ACRONYM
CLASS="acronym"
>HTML</ACRONYM
>
    search form variables).
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
      Search parameters can also be set in the <TT
CLASS="literal"
>&#60;--variables</TT
>
      section in <TT
CLASS="filename"
>search.htm</TT
> with help of the
      <B
CLASS="command"
><A
HREF="msearch-cmdref-replacevar.html"
>ReplaceVar</A
></B
> command.
      </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="table"
><A
NAME="AEN4294"
></A
><P
><B
>Table 10-1. Available search parameters</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><TBODY
><TR
><TD
>q</TD
><TD
>text parameter with the search query words</TD
></TR
><TR
><TD
>s</TD
><TD
>a character sequence specifying the
            result <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>sorting order</I
></SPAN
>.
            Small letters mean ascending order,
            capital letters mean descending order.
            The following letters are understood:
            <CODE
CLASS="option"
>R</CODE
> or <CODE
CLASS="option"
>r</CODE
> - for sorting by
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>score</I
></SPAN
>,
            <CODE
CLASS="option"
>P</CODE
> or <CODE
CLASS="option"
>p</CODE
> -
            for sorting by <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Popularity Rank</I
></SPAN
>,
            <CODE
CLASS="option"
>D</CODE
> or <CODE
CLASS="option"
>d</CODE
> -
            for sorting by <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>modification date</I
></SPAN
>.
            <CODE
CLASS="option"
>U</CODE
> or <CODE
CLASS="option"
>u</CODE
> -
            for sorting by <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>URL</I
></SPAN
>.
            <CODE
CLASS="option"
>S</CODE
> or <CODE
CLASS="option"
>s</CODE
> -
            for sorting by a user defined section
            (see also the <CODE
CLASS="option"
>su</CODE
> parameter).
            The default value is <CODE
CLASS="option"
>R</CODE
>,
            which means sorting in descending score order.
            </TD
></TR
><TR
><TD
>su</TD
><TD
>the user defined section name to sort results
            when <CODE
CLASS="option"
>s=S</CODE
> or <CODE
CLASS="option"
>s=s</CODE
>
            is given.
            <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
              Use the <B
CLASS="command"
><A
HREF="msearch-cmdref-userorder.html"
>UserOrder</A
></B
>
              command to improve performance of sorting by a user defined
              section.
              </P
></BLOCKQUOTE
></DIV
>
            </TD
></TR
><TR
><TD
>sl.*</TD
><TD
>a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>section limit</I
></SPAN
>. You
            can limit searches using a certain value
            of a desired section. For example,
            <CODE
CLASS="option"
>sl.title=Top</CODE
> will 
            only search among the documents having
            <TT
CLASS="literal"
>title</TT
> equal to <TT
CLASS="literal"
>Top</TT
>.
            Section values support <ACRONYM
CLASS="acronym"
>SQL</ACRONYM
>
            wildcards <TT
CLASS="literal"
>%</TT
> and <TT
CLASS="literal"
>_</TT
>.

<PRE
CLASS="programlisting"
>&#13;&#60;SELECT NAME="sl.title" MULTIPLE&#62;
&#60;OPTION VALUE="%2008%"&#62;2008&#60;/OPTION&#62;
&#60;OPTION VALUE="%2008%"&#62;2007&#60;/OPTION&#62;
&#60;/SELECT&#62;
</PRE
>
            The above code in the <ACRONYM
CLASS="acronym"
>HTML</ACRONYM
>
            search form will limit searches to the documents
            having the substrings <TT
CLASS="literal"
>2007</TT
> or
            <TT
CLASS="literal"
>2008</TT
> in their titles,
            according to the user choice.
            </TD
></TR
><TR
><TD
>fl</TD
><TD
>Loads a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>fast limit</I
></SPAN
>
            with the given name pattern.
            The limit should be previously defined using the
            <A
HREF="msearch-cmdref-limit.html"
>Limit</A
> command.
            If the <CODE
CLASS="option"
>fl</CODE
> value starts with
            <TT
CLASS="literal"
>minus</TT
> character,
            the limit is considered as <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>excluding</I
></SPAN
>
            limit. For example, <CODE
CLASS="option"
>fl=-name</CODE
>
            restricts search to the documents <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>not</I
></SPAN
>
            covered by the limit <TT
CLASS="literal"
>name</TT
>.
            <ACRONYM
CLASS="acronym"
>SQL</ACRONYM
> <B
CLASS="command"
>LIKE</B
> operator
            is used when loading fast limits during search time,
            so <TT
CLASS="literal"
>%</TT
> and <TT
CLASS="literal"
>_</TT
>
            wildcards can be used in the <CODE
CLASS="option"
>fl</CODE
> pattern.
            If the pattern matches multiple limits, 
            search is restricted to the documents covered
            by either of them. If an <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>excluding</I
></SPAN
>
            limit pattern matches multiple limits,
            search is restricted to the documents covered
            by non of them.
            </TD
></TR
><TR
><TD
>ps</TD
><TD
>page size,
            the number of documents displayed on one page,
            <TT
CLASS="literal"
>10</TT
> by default.
            </TD
></TR
><TR
><TD
>np</TD
><TD
>the current page number,
            <TT
CLASS="literal"
>0</TT
> by default (the first page)
            </TD
></TR
><TR
><TD
>m</TD
><TD
>search mode. <TT
CLASS="literal"
>all</TT
>
            and <TT
CLASS="literal"
>any</TT
> values are supported.
            The default value is <TT
CLASS="literal"
>all</TT
>.
            </TD
></TR
><TR
><TD
>wm</TD
><TD
>word match type.
            The available values are
            <TT
CLASS="literal"
>wrd</TT
>,
            <TT
CLASS="literal"
>beg</TT
>,
            <TT
CLASS="literal"
>end</TT
> and
            <TT
CLASS="literal"
>sub</TT
> respectively meaning
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>whole word</I
></SPAN
>,
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>word beginning</I
></SPAN
>,
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>word ending</I
></SPAN
>
            and <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>word substring</I
></SPAN
> match,
            with the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>whole word</I
></SPAN
> match type by default.
            Mininum word length for substring match is controlled by the
            <A
HREF="msearch-cmdref-substringmatchminwordlength.html"
>SubstringMatchMinWordLength</A
> command
            in <TT
CLASS="filename"
>search.htm</TT
>.
            See also <A
HREF="msearch-howstore.html#sql-stor-noncrc"
>the Section called <I
>Substring search notes</I
> in Chapter 7</A
>.
            </TD
></TR
><TR
><TD
>t</TD
><TD
>A <B
CLASS="command"
><A
HREF="msearch-cmdref-tag.html"
>Tag</A
></B
>
            limit. Limits search through the documents with the given
            tag only. This parameter has a similar effect to
            the <CODE
CLASS="option"
>-t</CODE
> option in 
            <SPAN
CLASS="application"
>indexer</SPAN
> command line
            </TD
></TR
><TR
><TD
>cat</TD
><TD
>A <B
CLASS="command"
><A
HREF="msearch-cmdref-category.html"
>Category</A
></B
> limit.
             Take a look into <A
HREF="msearch-subsections.html#categories"
>the Section called <I
>Categories
    <A
NAME="AEN3497"
></A
></I
> in Chapter 8</A
> for details.
           </TD
></TR
><TR
><TD
>ul</TD
><TD
>&#13;            <P
>&#13;            An <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> limit. Limits search results
            by an <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> pattern.
            If the <CODE
CLASS="option"
>ul</CODE
> value represents a relative
            <ACRONYM
CLASS="acronym"
>URL</ACRONYM
>, then
            <SPAN
CLASS="application"
>search.cgi</SPAN
> automatically
            adds <TT
CLASS="literal"
>%</TT
> wildcards before and after
            the <TT
CLASS="literal"
>ul</TT
> value. For example:
<PRE
CLASS="programlisting"
>&#13;&#60;OPTION VALUE="/manual/"&#62;
</PRE
>
            will add <TT
CLASS="literal"
>(url LIKE '%/manual/%')</TT
> condition
            into the <ACRONYM
CLASS="acronym"
>SQL</ACRONYM
> query.
            If the <CODE
CLASS="option"
>ul</CODE
> value is an absolute
            <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> with schema,
            then <SPAN
CLASS="application"
>search.cgi</SPAN
> will
            add <TT
CLASS="literal"
>%</TT
> sign only in the end of the value.
            For example for:
<PRE
CLASS="programlisting"
>&#13;&#60;OPTION VALUE="http://localhost/"&#62;
</PRE
>
            <SPAN
CLASS="application"
>search.cgi</SPAN
> will add
            <TT
CLASS="literal"
>(url LIKE 'http://localhost/%')</TT
> condition.
            </P
>
            <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
              Using an absolute <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> is more efficient 
              as it can use <ACRONYM
CLASS="acronym"
>SQL</ACRONYM
> indexes for optimization.
              </P
></BLOCKQUOTE
></DIV
>
            <P
>&#13;            Additionally to the automatically added wildcards,
            you can use your own <TT
CLASS="literal"
>%</TT
> and
            <TT
CLASS="literal"
>_</TT
> wildcards in the pattern.
            For example:
<PRE
CLASS="programlisting"
>&#13;&#60;OPTION VALUE="http://localhost/%/archive/"&#62;
</PRE
>
            </P
>
            <P
>&#13;            Multiple <CODE
CLASS="option"
>ul</CODE
> values can be given in
            the query string, which allows to
            use a <TT
CLASS="literal"
>SELECT MULTIPLE</TT
> input type
            in the <ACRONYM
CLASS="acronym"
>HTML</ACRONYM
> search form. Multiple
            values are joined using the <TT
CLASS="literal"
>OR</TT
>
            condition. For example, when a user selects
            both options from this list:
<PRE
CLASS="programlisting"
>&#13;&#60;SELECT NAME="ul" MULTIPLE&#62;
&#60;OPTION VALUE="/dir1/"&#62;Dir1&#60;/OPTION&#62;
&#60;OPTION VALUE="/dir2/"&#62;Dir2&#60;/OPTION&#62;
&#60;/SELECT&#62;
</PRE
>
            <SPAN
CLASS="application"
>search.cgi</SPAN
> will add
            <TT
CLASS="literal"
>(url LIKE '%/dir1/%' OR url LIKE '%/dir2/%')</TT
>
            condition into the search query.
            </P
>
            </TD
></TR
><TR
><TD
>ue</TD
><TD
>&#13;            <P
>&#13;            Limits the search results by excluding the 
            documents matching the given <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> pattern.
            </P
>
            <P
>&#13;            The <CODE
CLASS="option"
>ue</CODE
> parameter detects absolute and relative
            <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> patterns and automatically adds wildcards,
            and supports your own wildcards, similarly
            to the <CODE
CLASS="option"
>ul</CODE
> parameter.
            </P
>
            <P
>&#13;            Multiple <CODE
CLASS="option"
>ue</CODE
> parameters are also understood
            to exclude multiple <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> patterns at the
            same time. Multiple parameters are joined using
            the <TT
CLASS="literal"
>AND</TT
> <ACRONYM
CLASS="acronym"
>SQL</ACRONYM
> operator.
            For example, when a user selects both options from this list:
<PRE
CLASS="programlisting"
>&#13;&#60;SELECT NAME="ue" MULTIPLE&#62;
&#60;OPTION VALUE="/dir1/"&#62;Dir1&#60;/OPTION&#62;
&#60;OPTION VALUE="/dir2/"&#62;Dir2&#60;/OPTION&#62;
&#60;/SELECT&#62;
</PRE
>
            <SPAN
CLASS="application"
>search.cgi</SPAN
> will add
            <TT
CLASS="literal"
>(url NOT LIKE '%/dir1/%' AND url NOT LIKE '%/dire2/%')</TT
>
            condition into the search query.  
            </P
>
            <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
              The <CODE
CLASS="option"
>ul</CODE
> and <CODE
CLASS="option"
>ue</CODE
>
              parameters can be given at the same time.
              </P
></BLOCKQUOTE
></DIV
>
            </TD
></TR
><TR
><TD
>wf</TD
><TD
>&#13;             A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>weight factor</I
></SPAN
> vector.
             It allows to change weights of the different
             document sections at search time.
             The <CODE
CLASS="option"
>wf</CODE
> value should be passed
             in the form of a hexadecimal number.
             Check the explanation below.
            </TD
></TR
><TR
><TD
>nwf</TD
><TD
>&#13;            A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>No section</I
></SPAN
> weight factor vector.
            See the explanation below.
            </TD
></TR
><TR
><TD
>g</TD
><TD
>A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>language limit</I
></SPAN
>
            to find documents only in the given language.
            The value should be a two-letter language
            abbreviation. Have a look into <A
HREF="msearch-vary.html"
>the Section called <I
>Indexing multilingual servers</I
> in Chapter 9</A
>
            for details. An <ACRONYM
CLASS="acronym"
>HTML</ACRONYM
> form example:
<PRE
CLASS="programlisting"
>&#13;&#60;SELECT NAME="g"&#62;
&#60;OPTION VALUE=""   SELECTED="$(g)"&#62;All language
&#60;OPTION VALUE="en" SELECTED="$(g)"&#62;English
&#60;OPTION VALUE="de" SELECTED="$(g)"&#62;German
&#60;OPTION VALUE="ru" SELECTED="$(g)"&#62;Russian
&#60;/SELECT&#62;
</PRE
>
            </TD
></TR
><TR
><TD
>tmplt</TD
><TD
>The search template file name (without path),
            to specify the template file to use instead of
            the default file <TT
CLASS="filename"
>search.htm</TT
>.
            </TD
></TR
><TR
><TD
>type</TD
><TD
>A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Content-Type</I
></SPAN
> limit 
            to find documents with the given type,
            for example <TT
CLASS="literal"
>application/pdf</TT
>.
            Multiple <CODE
CLASS="option"
>type</CODE
> parameters can be passed
            in the same query. <ACRONYM
CLASS="acronym"
>SQL</ACRONYM
>
            <B
CLASS="command"
>LIKE</B
> patterns are also understood.
           </TD
></TR
><TR
><TD
>sp</TD
><TD
>Defines whether to use
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>stemming</I
></SPAN
>.
            <CODE
CLASS="option"
>sp=1</CODE
> tells
            <SPAN
CLASS="application"
>search.cgi</SPAN
> to use
            the <SPAN
CLASS="application"
>Ispell</SPAN
> commands
            given in <TT
CLASS="filename"
>search.htm</TT
>.
            <CODE
CLASS="option"
>sp=0</CODE
> makes
            <SPAN
CLASS="application"
>search.cgi</SPAN
> ignore
            all <SPAN
CLASS="application"
>Ispell</SPAN
> commands
            and therefore return only the exact word forms
            entered by the user.
            The default value is <TT
CLASS="literal"
>1</TT
>.
            See <A
HREF="msearch-fuzzy.html#ispell"
>the Section called <I
>Ispell
    <A
NAME="AEN5971"
></A
></I
></A
> for details.
            </TD
></TR
><TR
><TD
>sy</TD
><TD
>Defines whether to use <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>synonyms</I
></SPAN
>.
            <CODE
CLASS="option"
>sy=1</CODE
> allows using the 
            <A
HREF="msearch-fuzzy.html#synonyms"
>synonym</A
> type
            of fuzzy search. <CODE
CLASS="option"
>sy=0</CODE
>
            makes <SPAN
CLASS="application"
>search.cgi</SPAN
>
            ignore all synonym-related commands.
            The default value is <TT
CLASS="literal"
>1</TT
>.
            </TD
></TR
><TR
><TD
>tl</TD
><TD
>Defines whether to use the
          <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
><A
HREF="msearch-fuzzy.html#translit"
>transliteration</A
></I
></SPAN
>
          type of fuzzy search. <CODE
CLASS="option"
>tl=yes</CODE
> or
          <CODE
CLASS="option"
>tl=1</CODE
> means to use transliteration.
          <CODE
CLASS="option"
>tl=no</CODE
> or <CODE
CLASS="option"
>tl=0</CODE
>
          means to switch transliteration off.
          The default value is <TT
CLASS="literal"
>0</TT
>.
          </TD
></TR
><TR
><TD
>dt</TD
><TD
>A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>time</I
></SPAN
> limit.
            Three time limit types are supported.
            <P
>&#13;              <CODE
CLASS="option"
>dt=back</CODE
> 
              limits the result to <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>recent</I
></SPAN
> documents,
              modified within the period of time between
              <TT
CLASS="literal"
>now</TT
> and back to the past
              up to the given period of time.
              The period is to be passed using
              the <CODE
CLASS="option"
>dp</CODE
> parameter.
            </P
>
            <P
>If <CODE
CLASS="option"
>dt=er</CODE
> is given,
            then search results are limited to the documents
            newer or older than the given date value.
            <CODE
CLASS="option"
>dx=1</CODE
> means <TT
CLASS="literal"
>newer</TT
>
            (or <TT
CLASS="literal"
>after</TT
>). <CODE
CLASS="option"
>dx=-1</CODE
>
            means <TT
CLASS="literal"
>older</TT
> (or <TT
CLASS="literal"
>before</TT
>).
            The date value is specified using the
            <CODE
CLASS="option"
>dy</CODE
>, <CODE
CLASS="option"
>dm</CODE
>,
            and <CODE
CLASS="option"
>dd</CODE
> parameters.
            </P
>
            <P
>If <CODE
CLASS="option"
>dt=range</CODE
> is given,
            then search returns documents modified
            within the given date range. The
            parameters <CODE
CLASS="option"
>db</CODE
> and <CODE
CLASS="option"
>de</CODE
> 
            are used to pass the first and the last dates.
            </P
>
            </TD
></TR
><TR
><TD
>dp</TD
><TD
>A "<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>recentness</I
></SPAN
>" limit.
            To be used in combination with <CODE
CLASS="option"
>dt=back</CODE
>.
            <CODE
CLASS="option"
>dp</CODE
> should be specified 
            using the <TT
CLASS="literal"
>xxxA[yyyB[zzzC]]</TT
> format.
            <CODE
CLASS="varname"
>xxx</CODE
>, <CODE
CLASS="varname"
>yyy</CODE
>,
            <CODE
CLASS="varname"
>zzz</CODE
> are numbers (can be negative!).
            <CODE
CLASS="varname"
>A</CODE
>, <CODE
CLASS="varname"
>B</CODE
>, <CODE
CLASS="varname"
>C</CODE
>
            are <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>field descriptors</I
></SPAN
>, similar to
            the descriptors <CODE
CLASS="function"
>strptime()</CODE
> and
            <CODE
CLASS="function"
>strftime()</CODE
> <SPAN
CLASS="application"
>C</SPAN
>
            functions use, with the following meaning:
            <TT
CLASS="literal"
>s</TT
> - second, <TT
CLASS="literal"
>M</TT
> - minute,
            <TT
CLASS="literal"
>h</TT
> - hour, <TT
CLASS="literal"
>d</TT
> - day,
            <TT
CLASS="literal"
>m</TT
> - month, <TT
CLASS="literal"
>y</TT
> - year.
            For example:
<PRE
CLASS="programlisting"
>&#13;  4h30m     - 4 hours and 30 minutes
  1Y6M-15d  - 1 year and six month minus 15 days
  1h-60m+1s - 1 hour minus 60 minutes plus 1 second
</PRE
>
            </TD
></TR
><TR
><TD
>dx</TD
><TD
>The <TT
CLASS="literal"
>newer</TT
>/<TT
CLASS="literal"
>older</TT
>
            flag. <CODE
CLASS="option"
>dx=1</CODE
> means <TT
CLASS="literal"
>newer</TT
>.
            <CODE
CLASS="option"
>dx=-1</CODE
> means <TT
CLASS="literal"
>older</TT
>. 
            <CODE
CLASS="option"
>dx</CODE
> is to be used together with
             <CODE
CLASS="option"
>dt=er</CODE
>.
            </TD
></TR
><TR
><TD
>dm</TD
><TD
>Month (when <CODE
CLASS="option"
>dt=er</CODE
>),
            starting from <TT
CLASS="literal"
>0</TT
>:
            <TT
CLASS="literal"
>0</TT
> - January,
            <TT
CLASS="literal"
>1</TT
> - February, ... ,
            <TT
CLASS="literal"
>11</TT
> - December.
            </TD
></TR
><TR
><TD
>dy</TD
><TD
>Year (when <CODE
CLASS="option"
>dt=er</CODE
>),
            using the four digit format.
            For example: <CODE
CLASS="option"
>dy=2008</CODE
>.
            </TD
></TR
><TR
><TD
>dd</TD
><TD
>Day  (when <CODE
CLASS="option"
>dt=er</CODE
>),
             a number in the range
             <TT
CLASS="literal"
>1</TT
>...<TT
CLASS="literal"
>31</TT
>.
            </TD
></TR
><TR
><TD
>db</TD
><TD
> The <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>beginning date</I
></SPAN
>
            (when <CODE
CLASS="option"
>dt=range</CODE
>), using
            the <TT
CLASS="literal"
>dd/mm/yyyy</TT
> format.
            </TD
></TR
><TR
><TD
>de</TD
><TD
>The <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>end date</I
></SPAN
>
            (when <CODE
CLASS="option"
>dt=range</CODE
>), using
            the <TT
CLASS="literal"
>dd/mm/yyyy</TT
> format.
          </TD
></TR
><TR
><TD
>us</TD
><TD
>Specifies the name of the
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>user defined score</I
></SPAN
>
            list which should be loaded and mixed with
            the score values internally calculated
            by <SPAN
CLASS="application"
>mnoGoSearch</SPAN
>,
            according to <A
HREF="msearch-cmdref-userscore.html"
>UserScore</A
> and
            <A
HREF="msearch-cmdref-userscorefactor.html"
>UserScoreFactor</A
> configuration.
            If <CODE
CLASS="option"
>us</CODE
> is empty, or there is
            no a <A
HREF="msearch-cmdref-userscore.html"
>UserScore</A
> command
            with the given name, <CODE
CLASS="option"
>us</CODE
> is ignored.
            </TD
></TR
><TR
><TD
>ss</TD
><TD
>Specifies the name of the
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>user defined site score</I
></SPAN
> list
            which should be loaded and mixed with the scores
            internally calculated by <SPAN
CLASS="application"
>mnoGoSearch</SPAN
>,
            according to <A
HREF="msearch-cmdref-usersitescore.html"
>UserSiteScore</A
>
            and <A
HREF="msearch-cmdref-userscorefactor.html"
>UserScoreFactor</A
> configuration.
            If <CODE
CLASS="option"
>us</CODE
> is empty, or there is no a
            <A
HREF="msearch-cmdref-usersitescore.html"
>UserSiteScore</A
> command
            the given name, <CODE
CLASS="option"
>ss</CODE
> is ignored.
            </TD
></TR
><TR
><TD
>GroupBySite</TD
><TD
>Enables or disables
            <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>grouping results by site</I
></SPAN
>.
            Can be set to <TT
CLASS="literal"
>yes</TT
> or <TT
CLASS="literal"
>no</TT
>,
            with the default value <TT
CLASS="literal"
>no</TT
>.
            This parameter has the same effect with
            the <A
HREF="msearch-cmdref-groupbysite.html"
>GroupBySite</A
>
            <TT
CLASS="filename"
>search.htm</TT
> command.
            </TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-changeweight"
>Changing weights of the different document parts at search time</A
></H2
><P
>Changing weights (importance) of the different
    document parts (sections) is possible with help
    of the <CODE
CLASS="option"
>wf</CODE
> <ACRONYM
CLASS="acronym"
>HTML</ACRONYM
> form
    variable passed to <SPAN
CLASS="application"
>search.cgi</SPAN
>.
    </P
><P
>To be able to use this feature, it is recommended to
    set different section IDs for different document
    parts in the <B
CLASS="command"
><A
HREF="msearch-cmdref-section.html"
>Section</A
></B
>
    command in <TT
CLASS="filename"
>indexer.conf</TT
>.
    Currently up to <TT
CLASS="literal"
>256</TT
> separate sections are supported.
    </P
><P
>Imagine that we have these default
    sections in <TT
CLASS="filename"
>indexer.conf</TT
>:
<PRE
CLASS="programlisting"
>&#13;Section body        1  256
Section title       2  128
Section keywords    3  128
Section description 4  128
</PRE
>
    </P
><P
>The <CODE
CLASS="option"
>wf</CODE
> value is a string of hexadecimal
    digits <TT
CLASS="literal"
>ABCD</TT
>, where every digit represents
    a weight factor for the corresponding section.
    The rightmost digit corresponds to the section with
    <CODE
CLASS="varname"
>ID</CODE
>=<TT
CLASS="literal"
>1</TT
>.
    If a weight factor for some section is <TT
CLASS="literal"
>0</TT
>,
    then this section is totally ignored at search time.
    </P
><P
>&#13;    For the given above section configuration:
    </P
><P
CLASS="literallayout"
><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="varname"
>D</CODE
>&nbsp;is&nbsp;a&nbsp;factor&nbsp;for&nbsp;section&nbsp;1&nbsp;(body)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="varname"
>C</CODE
>&nbsp;is&nbsp;a&nbsp;factor&nbsp;for&nbsp;section&nbsp;2&nbsp;(title)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="varname"
>B</CODE
>&nbsp;is&nbsp;a&nbsp;factor&nbsp;for&nbsp;section&nbsp;3&nbsp;(keywords)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="varname"
>A</CODE
>&nbsp;is&nbsp;a&nbsp;factor&nbsp;for&nbsp;section&nbsp;4&nbsp;(description)<br>
</P
><P
>&#13;      <P
><B
>Examples:</B
></P
>
<P
CLASS="literallayout"
><br>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="option"
>wf=0001</CODE
>&nbsp;will&nbsp;search&nbsp;through&nbsp;the&nbsp;section&nbsp;<TT
CLASS="literal"
>body</TT
>&nbsp;only.<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="option"
>wf=1110</CODE
>&nbsp;will&nbsp;search&nbsp;through&nbsp;the&nbsp;sections<br>
&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="literal"
>title</TT
>,&nbsp;&nbsp;<TT
CLASS="literal"
>keywords</TT
>,&nbsp;<TT
CLASS="literal"
>description</TT
>.<br>
&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;section&nbsp;<TT
CLASS="literal"
>body</TT
>&nbsp;will&nbsp;be&nbsp;ignored.<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;<CODE
CLASS="option"
>wf=F421</CODE
>&nbsp;will&nbsp;search&nbsp;through:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="literal"
>Description</TT
>&nbsp;with&nbsp;factor&nbsp;<TT
CLASS="literal"
>15</TT
>&nbsp;(<TT
CLASS="literal"
>F</TT
>&nbsp;hex)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="literal"
>Keywords</TT
>&nbsp;with&nbsp;factor&nbsp;<TT
CLASS="literal"
>4</TT
><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="literal"
>Title</TT
>&nbsp;with&nbsp;factor&nbsp;<TT
CLASS="literal"
>2</TT
><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<TT
CLASS="literal"
>Body</TT
>&nbsp;with&nbsp;factor&nbsp;<TT
CLASS="literal"
>1</TT
><br>
</P
>
    </P
><P
>&#13;    It is also possible to set the default <CODE
CLASS="option"
>wf</CODE
>
    value using the <A
HREF="msearch-cmdref-wf.html"
>wf</A
>
    <TT
CLASS="filename"
>search.htm</TT
> command.
    If <CODE
CLASS="option"
>wf</CODE
> is omitted in the query and
    there is no a <A
HREF="msearch-cmdref-wf.html"
>wf</A
> command
    defined in <TT
CLASS="filename"
>search.htm</TT
>,
    all section factors are considered to be equal to <TT
CLASS="literal"
>1</TT
>,
    which means that all sections have the same weight.
    </P
><P
>&#13;    Starting from the version <TT
CLASS="literal"
>3.3.0</TT
>,
    it is also possible to specify the <CODE
CLASS="option"
>wf</CODE
>
    value as a <B
CLASS="command"
><A
HREF="msearch-cmdref-dbaddr.html"
>DBAddr</A
></B
>
    <TT
CLASS="filename"
>search.htm</TT
> command parameter.
    This can be useful if you're using multiple
    <B
CLASS="command"
><A
HREF="msearch-cmdref-dbaddr.html"
>DBAddr</A
></B
> commands
    to merge search results from multiple databases and
    want to give higher or lower score to the results
    coming from a certain database.
    </P
><P
>&#13;    The <CODE
CLASS="option"
>nwf</CODE
> search parameter uses the
    same format with <CODE
CLASS="option"
>wf</CODE
>.
    If all found words appear only in a single section,
    then resulting score becomes lower. It can be used
    for example to ignore spam in the <TT
CLASS="literal"
>KEYWORDS</TT
>
    meta tag. If you use high <CODE
CLASS="option"
>wf</CODE
> and
    <CODE
CLASS="option"
>nwf</CODE
> values for the section corresponding
    to the <TT
CLASS="literal"
>KEYWORDS</TT
> meta tag, then score
    will be high only if <TT
CLASS="literal"
>KEYWORDS</TT
> match
    the rest of the document, that is if the query words
    appear in <TT
CLASS="literal"
>KEYWORDS</TT
> and
    <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>at the same time</I
></SPAN
> in other sections
    (like <TT
CLASS="literal"
>title</TT
> or <TT
CLASS="literal"
>body</TT
>).
    If the query words are found in the section
    <TT
CLASS="literal"
>KEYWORDS</TT
> alone, then score for
    this documents will be low.
    Starting from the version <TT
CLASS="literal"
>3.3.3</TT
>,
    <CODE
CLASS="option"
>nwf</CODE
> can also be set as a parameter
    to the <A
HREF="msearch-cmdref-dbaddr.html"
>DBAddr</A
> command in
    <TT
CLASS="filename"
>search.htm</TT
>.
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-scriptname"
>Using <SPAN
CLASS="application"
>search.cgi</SPAN
> with <ACRONYM
CLASS="acronym"
>SSI</ACRONYM
></A
></H2
><P
>When using a dynamic page
    (usually with the <TT
CLASS="filename"
>.shtml</TT
> extension)
    with <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>server side includes</I
></SPAN
>
    (<ACRONYM
CLASS="acronym"
>SSI</ACRONYM
>)
    that calls <SPAN
CLASS="application"
>search.cgi</SPAN
>,
    i.e. when <SPAN
CLASS="application"
>search.cgi</SPAN
> is not called
    directly as a <ACRONYM
CLASS="acronym"
>CGI</ACRONYM
> program,
    you may need to override the value available in
    the <SPAN
CLASS="application"
>Apache</SPAN
>'s
    <CODE
CLASS="envar"
>SCRIPT_NAME</CODE
> environment variable
    to make <SPAN
CLASS="application"
>search.cgi</SPAN
> generate
    references back to the the <TT
CLASS="filename"
>.shtml</TT
>
    page rather than to <SPAN
CLASS="application"
>search.cgi</SPAN
>.
    </P
><P
>For example, when an <TT
CLASS="filename"
>.shtml</TT
>
    page contains this <ACRONYM
CLASS="acronym"
>SSI</ACRONYM
> code:
<PRE
CLASS="programlisting"
>&#13;<TT
CLASS="literal"
>&#60;--#include virtual="search.cgi"&#62;</TT
>
</PRE
>
    the <CODE
CLASS="envar"
>SCRIPT_NAME</CODE
> variable will point to
    <SPAN
CLASS="application"
>search.cgi</SPAN
>, not to the
    <TT
CLASS="filename"
>.shtml</TT
> page.
    </P
><P
>To override the <CODE
CLASS="envar"
>SCRIPT_NAME</CODE
> variable,
    <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> checks
    the <CODE
CLASS="envar"
>UDMSEARCH_SELF</CODE
> variable that you
    can add to the <SPAN
CLASS="application"
>Apache</SPAN
>'s
    <TT
CLASS="filename"
>httpd.conf</TT
> as follows:
<PRE
CLASS="programlisting"
>&#13;SetEnv UDMSEARCH_SELF /path/to/search.shtml
PassEnv UDMSEARCH_SELF
</PRE
>
    <SPAN
CLASS="application"
>search.cgi</SPAN
> checks
    the <CODE
CLASS="envar"
>UDMSEARCH_SELF</CODE
> variable first,
    and then <CODE
CLASS="envar"
>SCRIPT_NAME</CODE
>. The found
    value is available in the <CODE
CLASS="varname"
>$(Self)</CODE
>
    template variable, which you can use in the links.
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-templates"
>Using multiple templates</A
></H2
><P
>It is often required to use multiple templates
    with the same <SPAN
CLASS="application"
>search.cgi</SPAN
>.
    There are a few ways to do it.
    They are given here in the order
    <SPAN
CLASS="application"
>search.cgi</SPAN
> detects the template name.
    </P
><P
></P
><OL
TYPE="1"
><LI
><P
>&#13;          <SPAN
CLASS="application"
>search.cgi</SPAN
> checks the
          environment variable <CODE
CLASS="envar"
>UDMSEARCH_TEMPLATE</CODE
>.
          So you can put a path to the desired search
          template to <CODE
CLASS="envar"
>UDMSEARCH_TEMPLATE</CODE
>.
        </P
></LI
><LI
><P
>&#13;        <SPAN
CLASS="application"
>search.cgi</SPAN
> also supports
        <SPAN
CLASS="application"
>Apache</SPAN
> internal redirect.
        It checks the <CODE
CLASS="envar"
>REDIRECT_STATUS</CODE
> and
        <CODE
CLASS="envar"
>REDIRECT_URL</CODE
> environment variables.
        To start using <SPAN
CLASS="application"
>Apache</SPAN
> internal redirect
        you can add these lines into <TT
CLASS="filename"
>httpd.conf</TT
>: 
<PRE
CLASS="programlisting"
>&#13;AddType text/html .zhtml
AddHandler zhtml .zhtml
Action zhtml /cgi-bin/search.cgi
</PRE
>
        </P
><P
>Put <SPAN
CLASS="application"
>search.cgi</SPAN
> into your
        <TT
CLASS="filename"
>/cgi-bin/</TT
> directory. Then put the
        <ACRONYM
CLASS="acronym"
>HTML</ACRONYM
> search templates into your
        Web server directory using the <TT
CLASS="filename"
>.zthml</TT
> extension,
        for example <TT
CLASS="filename"
>template.zhtml</TT
>.
        Now you can open the search page by typing
        this <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> in the browser location bar:
<PRE
CLASS="programlisting"
>&#13;http://www.site.com/path/to/template.zhtml
</PRE
>
         Instead of <TT
CLASS="filename"
>.zthml</TT
> you can configure
         any other extension on your choice.
        </P
></LI
><LI
><P
>&#13;      <SPAN
CLASS="application"
>search.cgi</SPAN
> also checks
      the <ACRONYM
CLASS="acronym"
>URL</ACRONYM
> part after
      the "<TT
CLASS="filename"
>search.cgi</TT
>" substring,
      which is available in the <CODE
CLASS="envar"
>PATH_INFO</CODE
>
      environment variable. For example, if you type 
      <TT
CLASS="filename"
>http://site/search.cgi/search1.html</TT
>
      in your browser, <SPAN
CLASS="application"
>search.cgi</SPAN
>
      will open <TT
CLASS="filename"
>search1.htm</TT
> as a template file.
      If you type <TT
CLASS="filename"
>http://site/search.cgi/search2.html</TT
>,
      it will use <TT
CLASS="filename"
>search2.htm</TT
>, and so on.
      </P
></LI
><LI
><P
>If the above three ways did not work,
        <SPAN
CLASS="application"
>search.cgi</SPAN
> opens a template
        which has the same name with the script
        being executed by reading the <CODE
CLASS="envar"
>SCRIPT_NAME</CODE
>
        environment variable value.
        <SPAN
CLASS="application"
>search.cgi</SPAN
> opens
        the template file <TT
CLASS="filename"
>ETC/search.htm</TT
>,
        <TT
CLASS="filename"
>search1.cgi</TT
>
        opens the template file <TT
CLASS="filename"
>ETC/search1.htm</TT
> and so on,
        where <TT
CLASS="filename"
>ETC</TT
> is
        <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> <TT
CLASS="filename"
>/etc</TT
>
        directory (usually <TT
CLASS="filename"
>/usr/local/mnogosearch/etc</TT
>).
        So, you can create a number of symbolic or hard links
        to the same <SPAN
CLASS="application"
>search.cgi</SPAN
>
        and open it using its different names.
       </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>See also <A
HREF="msearch-multilang.html"
>the Section called <I
>Search pages with multi-lingual interface
    <A
NAME="AEN3955"
></A
></I
> in Chapter 9</A
>.
        </P
></BLOCKQUOTE
></DIV
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-bool"
>Advanced Boolean search
    <A
NAME="AEN4812"
></A
></A
></H2
><P
>You can compose complex search queries
    with help of the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Boolean query language</I
></SPAN
>.
    </P
><P
><SPAN
CLASS="application"
>mnoGoSearch</SPAN
>
     understands the following Boolean operators:
    </P
><P
><KBD
CLASS="userinput"
>&#38;</KBD
> - logical <B
CLASS="command"
>AND</B
>.
    For example, ``<KBD
CLASS="userinput"
>mysql &#38; odbc</KBD
>''.
    <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> will
    return the documents containing both words
    <TT
CLASS="literal"
>mysql</TT
> and <TT
CLASS="literal"
>odbc</TT
>.
    You can also use <KBD
CLASS="userinput"
>+</KBD
> for this operator.
    </P
><P
><KBD
CLASS="userinput"
>|</KBD
> - logical <B
CLASS="command"
>OR</B
>.
    For example, ``<KBD
CLASS="userinput"
>mysql|odbc</KBD
>''.
    <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> will find
    the documents containing the word <TT
CLASS="literal"
>mysql</TT
>,
    or containing the word <TT
CLASS="literal"
>odbc</TT
>.
    </P
><P
><KBD
CLASS="userinput"
>~</KBD
> - logical <B
CLASS="command"
>NOT</B
>.
    For example, ``<KBD
CLASS="userinput"
>mysql &#38; ~odbc</KBD
>''.
    <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> will find
    the documents containing the word <TT
CLASS="literal"
>mysql</TT
>
    and not containing the word <TT
CLASS="literal"
>odbc</TT
> at the same time.
    Note that the <TT
CLASS="literal"
>~</TT
> operator can only
    <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>exclude</I
></SPAN
> the given word from the results.
    The query ``<KBD
CLASS="userinput"
>~mysql &#38; ~odbc</KBD
>''
    will return no result.
    </P
><P
><KBD
CLASS="userinput"
>()</KBD
> - the grouping command to
    compose more complex queries.
    For example, ``<KBD
CLASS="userinput"
>(mysql | msql) &#38; ~postgres</KBD
>''.
    </P
><P
>&#13;      <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
        Boolean operators work only in queries having two or more
        words. <SPAN
CLASS="application"
>search.cgi</SPAN
> ignores 
        Boolean operators in queries consisting of a single word.
        Thus, the query ``<KBD
CLASS="userinput"
>~odbc</KBD
>'' will just
        search for the word <TT
CLASS="literal"
>odbc</TT
>
        without treating the <TT
CLASS="literal"
>~</TT
>
        sign as the <B
CLASS="command"
>NOT</B
> operator.
        </P
></BLOCKQUOTE
></DIV
>
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-secnoref"
>Restricting search words to a section
    <A
NAME="AEN4856"
></A
></A
></H2
><P
>&#13;      Starting from the version <TT
CLASS="literal"
>3.2.39</TT
>,
      <SPAN
CLASS="application"
>mnoGoSearch</SPAN
> understands
      <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>section name references</I
></SPAN
>.
      For example, ``<KBD
CLASS="userinput"
>title:web body:server''</KBD
>
      will find the documents having the word <TT
CLASS="literal"
>web</TT
>
      in their titles and at the same time the word
      <TT
CLASS="literal"
>server</TT
> in their bodies.
      To make <SPAN
CLASS="application"
>search.cgi</SPAN
> recognize section names,
      you need to copy the desired  <A
HREF="msearch-cmdref-section.html"
>Section</A
>
      commands from <TT
CLASS="filename"
>indexer.conf</TT
> to <TT
CLASS="filename"
>search.htm</TT
>.
      <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
      Section name references can be combined
      with Boolean operators.
      </P
></BLOCKQUOTE
></DIV
>
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-phrase"
>Phrase search
    <A
NAME="AEN4873"
></A
></A
></H2
><P
>&#13;    Phrase search is activated by using quote characters
    around the words. For example,
    the query ``<KBD
CLASS="userinput"
>"search engine"</KBD
>''
    will return the documents having the word <TT
CLASS="literal"
>search</TT
>
    immediately followed by the word <TT
CLASS="literal"
>engine</TT
>,
    while the query ``<KBD
CLASS="userinput"
>search engine</KBD
>''
    (i.e. without the surrounding quotes) will not require
    the words to be close to each other.
    <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
    It is possible to combine two or more phrases in the same
    query, as well as combine phrases with Boolean operators.
    </P
></BLOCKQUOTE
></DIV
>
    </P
><P
>&#13;    Starting from the version <TT
CLASS="literal"
>3.2.39</TT
>,
    automatic phrase search is forced for complex words having
    dots, dashes, underscores, commas and slashes
    (<TT
CLASS="literal"
>- _ . , /</TT
>) as delimiters between
    the word parts.
    For example, the query ``<KBD
CLASS="userinput"
>max_allowed_packet</KBD
>''
    automatically searches for the phrase
    ``<KBD
CLASS="userinput"
>"max allowed packet"</KBD
>'',
    not just for the three separate words.
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-exactsectionmatch"
>Exact section match
    <A
NAME="AEN4889"
></A
></A
></H2
><P
>&#13;    Starting from the version <TT
CLASS="literal"
>3.3.0</TT
>,
    <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>exact section match</I
></SPAN
> syntax is available.
    An exact section match query consists of a section
    reference (as described in <A
HREF="msearch-doingsearch.html#search-secnoref"
>the Section called <I
>Restricting search words to a section
    <A
NAME="AEN4856"
></A
></I
></A
>),
    followed by the <TT
CLASS="literal"
>=</TT
> (the EQUAL sign),
    followed by a phrase in quotes.
    For example, the search query
    ``<KBD
CLASS="userinput"
>title="search engine"</KBD
>''
    will return the documents having <TT
CLASS="literal"
>title</TT
>
    equal to the phrase "<TT
CLASS="literal"
>search engine</TT
>".
    </P
><P
>&#13;    Exact section match is not available if you set
    <A
HREF="msearch-cmdref-savesectionsize.html"
>SaveSectionSize</A
> set to <TT
CLASS="literal"
>no</TT
>.
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="search-exp"
>How search handles expired documents</A
></H2
><P
>Expired documents are still searchable with their old content.
    </P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="msearch-vary.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="msearch-templates.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Indexing multilingual servers</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>How to write search result templates
    <A
NAME="AEN4907"
></A
></TD
></TR
></TABLE
></DIV
><!--#include virtual="body-after.html"--></BODY
></HTML
>