Limit describes an SQL query
returning a list of URL IDs and
associates the list with the given name. The query is executed during execution
of indexer -Eblob, indexer -Erewriteurl
or indexer -Erewritelimits
and its results are stored in the database in a compact way
which allows to fetch the limit during search time very efficiently.
Note:
Use the fl search.cgi parameter to load a previously created fast limit at search time.
Note:
Starting from the version 3.2.39, it's also possible
to specify the fl parameter in the
DBAddr
command in search.htm,
to set different limits for the databases listed in the template.
Fast limits work much faster
than section limits which are activated
by using the sl search parameter
described in the Section called Search parameters
in Chapter 10.
Unlike section limits, fast limits
are suitable for huge databases and can use very complex WHERE
conditions, typically on the url
and urlinfo mnoGoSearch tables, but can also use joins with external tables.
Fast limits work only with the databases supporting
DBMode=blob (see the Section called Storage mode - blob
in Chapter 7) and
reuse the bdict table in the mnoGoSearch database,
however they are available for DBMode=single and
DBMode=multi as well.
Note:
If you use DBMode=single or DBMode=multi,
then run indexer -Erewritelimits
to create or update fast limits after indexing.
Note:
If you use DBMode=blob then fast limits
are recreated automatically
during execution of indexer -Eblob or indexer -Erewriteurl,
however you can still use indexer -Erewritelimits for quick rewrite of
fast limits without touching other data.
Starting from the version 3.2.39, it is also possible
to specify the Limit command directly in search.htm
without having to cache the desired limits using indexer -Eblob.
It can be useful for the limits whose SQL queries
work very efficiently and return a very small number of documents.