# Package =TWiki::Search This module implements all the search functionality.
## [[ClassMethod]] **new** `($session)` Constructor for the singleton Search engine object. ## [[ObjectMethod]] **finish** `()` Break circular references. ## [[StaticMethod]] **getTextPattern** `($text,$pattern)` Sanitise search pattern - currently used for [[FormattedSearch]] only ## [[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. If `inline` is set, then the results are **not** decorated with the search template head and tail blocks. The function will throw Error::Simple if it encounters any problems with the syntax of the search string. Note: If `format` 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` or `inline` then you are responsible for converting the TML to HTML yourself! FIXME: `callback` cannot work with format parameter (consider format='| $topic |' ## [[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 In addition to the name of a 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.