|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://wiki.cs.msu.ru/System/PerlDoc?cover=print;module=Foswiki::Search
Дата изменения: Unknown Дата индексирования: Mon Apr 11 22:55:12 2016 Кодировка: |
internal package Foswiki::Search internal package Foswiki::Search This module implements all the search functionality.
ClassMethod new ($session) Constructor for the singleton Search engine object.
ObjectMethod finish() ObjectMethod metacache ObjectMethod parseSearch($searchString, $params) → Foswiki::*::Node parses the search string and builds the appropriate nodes (uses $param->{type} to work out which parser
TODO: make parser register themselves with their type, so that we could plug in anything.
StaticMethod _isSetTrue( $value, $default ) → $boolean $value is actually set to true, and 0 otherwise.
If the value is undef, then $default is returned. If $default is
not specified it is taken as 0.
ObjectMethod searchWeb (...) Search one or more webs according to the parameters.
If_callback is set, that means the caller wants results as
soon as they are ready. =_callback_ should be set to a reference
to a function which takes _cbdata as the first parameter and
remaining parameters the same as 'print'.
If _callback is set, the result is always undef. Otherwise the
result is a string containing the rendered search results.
The function will throw Error::Simple if it encounters any problems with the syntax of the search string.
Note: Ifformat is set, template will be ignored.
Note: For legacy, if regex is defined, it will force type='regex'
If type="word" it will be changed to type="keyword" with wordboundaries=1. This will be used for searching with scope="text" only, because scope="topic" will do a Perl search on topic names.
SMELL: If template is defined bookview will not work
SMELL: it seems that if you define _callback then you are
responsible for converting the TML to HTML yourself!
FIXME: callback cannot work with format parameter (consider format='| $topic |'
ObjectMethod loadTemplates (...) this code was extracted from searchWeb, and should probably be private.
the implementation of
TODO: rewrite to take a resultset, a set of params? and a hash of sub's to enable evaluations of things like '$include(blah)' in format strings.
have a default set of replacements like $lt, $nop, $percnt, $dollar etc, and then the hash of subs can take care of %MACRO{}% specific complex to evaluate replacements..
(that way we don't pre-evaluate and then subst)
ObjectMethod formatResult TODO: i don't really know what we'll need to do about order of processing. TODO: at minimum, the keys need to be sorted by length so that $datatime is processed before $date TODO: need to cater for $summary(params) style too
StaticMethod displayFormField( $meta, $args ) → $text Parse the arguments to a $formfield specification and extract the relevant formfield from the given meta data.
args string containing name of form field
args can be appended with a commas
followed by a string format (\d+)([,\s*]\.\.\.)?). This supports the formatted
search function $formfield and is used to shorten the returned string or a
hyphenated string.
Copyright © by the contributing authors. All material on this site is the property of the contributing authors.