<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >UserOrder</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="mnoGoSearch 3.3.9 reference manual" HREF="index.html"><LINK REL="UP" TITLE="mnoGoSearch command reference" HREF="msearch-cmdref.html"><LINK REL="PREVIOUS" TITLE="UseRemoteContentType" HREF="msearch-cmdref-useremotecontenttype.html"><LINK REL="NEXT" TITLE="UserScore" HREF="msearch-cmdref-userscore.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="refentry" 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.9 reference manual: Full-featured search engine software</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="msearch-cmdref-useremotecontenttype.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="msearch-cmdref-userscore.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="cmdref-userorder" ></A >UserOrder</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN13535" ></A ><H2 >Name</H2 ><B CLASS="command" >UserOrder</B > -- specifies an <ACRONYM CLASS="acronym" >SQL</ACRONYM > query for user defined ordering <P ><B ></B ><TT CLASS="filename" >indexer.conf</TT ></P ></DIV ><DIV CLASS="refsynopsisdiv" ><A NAME="AEN13542" ></A ><H2 >Synopsis</H2 ><P ><B CLASS="command" >UserOrder</B > {name} {sql-query}</P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN13547" ></A ><H2 >Description</H2 ><P > The <B CLASS="command" >UserOrder</B > command allows to configure a user defined ordering of the documents. </P ><P > The default way of sorting by a user defined section is possible with help of <TT CLASS="literal" >s=S&su=secname</TT > <A HREF="msearch-doingsearch.html#search-params" >search parameters</A >, however it can be slow in case of a big database. <B CLASS="command" >UserOrder</B > allows to improve performance of ordering by a user defined section by preliminary caching the data required for sorting in a quickly accessible format. </P ><P > The sorting data is cached in the database whenever <KBD CLASS="userinput" >indexer -Eblob</KBD > or <KBD CLASS="userinput" >indexer -Erewritelimits</KBD > is run. </P ><P > When processing the <CODE CLASS="option" >s=S&su=secname</CODE > search parameters, <SPAN CLASS="application" >search.cgi</SPAN > checks if cached sorting data for fast ordering presents in the database and uses the cached data on success. Otherwise, it switches to the slow method of ordering by direct query to the <CODE CLASS="varname" >urlinfo</CODE > table. </P ><P > The first parameter <CODE CLASS="option" >name</CODE > stands for the user order name. </P ><P >The second parameter <CODE CLASS="option" >sql-query</CODE > represents an <ACRONYM CLASS="acronym" >SQL</ACRONYM > query which returns a result set consisting of a single column with values corresponding to <CODE CLASS="varname" >ID</CODE >s of the documents. The <CODE CLASS="varname" >ID</CODE >s must be returned in the desired order by using the <TT CLASS="literal" >ORDER BY</TT > clause in the <ACRONYM CLASS="acronym" >SQL</ACRONYM > query. The <ACRONYM CLASS="acronym" >SQL</ACRONYM > query should typically fetch data from the table <CODE CLASS="varname" >url</CODE > (using the column <CODE CLASS="varname" >rec_id</CODE >) or the table <CODE CLASS="varname" >urlinfo</CODE > (using the column <CODE CLASS="varname" >url_id</CODE >). <DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Note: </B > The <CODE CLASS="varname" >ID</CODE >s of the documents are stored in the <TT CLASS="literal" >rec_id</TT > column of the <TT CLASS="literal" >url</TT > table of <SPAN CLASS="application" >mnoGoSearch</SPAN > database. To know an <CODE CLASS="varname" >ID</CODE > of a certain document you can run this <ACRONYM CLASS="acronym" >SQL</ACRONYM > query: <PRE CLASS="programlisting" > SELECT rec_id FROM url WHERE url='http://hostname/page1.html'; </PRE > </P ></BLOCKQUOTE ></DIV > </P ><P > It is possible to configure multiple <B CLASS="command" >UserOrder</B > commands in the same <TT CLASS="filename" >indexer.conf</TT >. The <TT CLASS="literal" >name</TT > argument must be unique in every <B CLASS="command" >UserOrder</B > command. </P ><P > <SPAN CLASS="application" >search.cgi</SPAN > detects which <B CLASS="command" >UserOrder</B > command to use by taking its name from the <TT CLASS="literal" >su=secname</TT > search parameter. If no <TT CLASS="literal" >su</TT > parameter is given, or the <TT CLASS="literal" >su</TT > value is empty, then non of the <B CLASS="command" >UserOrder</B > commands are applied for ordering. </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN13597" ></A ><H2 >Examples</H2 ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN13599" ></A ><PRE CLASS="programlisting" > # Prepare data for fast ordering by Title UserOrder title "SELECT url_id FROM urlinfo WHERE sname='title' ORDER BY sval" # Prepare data for fast ordering by document size UserOrder title "SELECT rec_id FROM url ORDER BY docsize" </PRE ><P ></P ></DIV ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN13601" ></A ><H2 >See also</H2 ><P > <A HREF="msearch-cmdref-userscorefactor.html" >UserScoreFactor</A >, <A HREF="msearch-cmdref-usersitescore.html" >UserSiteScore</A >, <A HREF="msearch-doingsearch.html#search-params" >the Section called <I >Search parameters <A NAME="AEN4440" ></A ></I > in Chapter 10</A >. </P ></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-cmdref-useremotecontenttype.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-cmdref-userscore.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >UseRemoteContentType</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="msearch-cmdref.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >UserScore</TD ></TR ></TABLE ></DIV ><!--#include virtual="body-after.html"--></BODY ></HTML >