History ----------------- 02 Jan 2003: 3.2.0.rc2 * A support for mnogosearch-php-extension-1.68 has been added * Date limits support for mnogosearch-3.2.8+ has been added (requires mnogosearch-php-extension-1.68) * A new search template variable ExcerptSize has been added to support setting amount of Excerpts. (default is 256 bytes) (requires mnogosearch-php-extension-1.68) * A new search template variable DateFormat has been added to support changing format of LastModified document field. (requires mnogosearch-php-extension-1.68) * search template is updated 06 Oct 2002: 3.2.0.rc1 * This release has almost all features of search.cgi. So it is the first release candidate for 3.2.x versions. * Popularity rank support has been added. Requires mnogosearch-3.2.7+ with php extension 1.66+ * A new Pop_Rank template variable has been added. * Clones detection support has been added. * New clones section at search template. * A few bugs in page navigator and $sp an $sy variables has been fixed. * A serious bug in clones support has been fixed. 22 Sep 2002: 3.2.0.beta7 * <? tags changed to <?php to achive more xml compatybility * Page navigator fixes to be GroupBySite compatible * make 'More results from this server' link don't show while browsing through exact site. * New search CGI-parameters sp and sy added. To enable/disable words forms (ispell) and synonyms in search results respectively. * search template example updated 08 Sep 2002: 3.2.0.beta6 * Search limit by url.content_type added. See updated search template for example. (requires mnogosearch-3.2.7+ and mnogosearch php extension-1.65+) * Migration to mnogosearch php extension-1.65+ * Grouping search results by sites added. A new search template command GroupBySite has bees added. A new search template section site_limit and variable $(SITELIMIT) has been added. * $stored variable changed to $(stored_href) for compatibility with search.cgi * $(STORED) template variable has been added to display link to storedoc.cgi * If document has no title will show basename of URL instead of 'No Title'. This if for pdf - like parsed documents while external parsers returns no title * Search template updated * Some bugs were fixed * Some code cleanups 04 Aug 2002: 3.2.0.beta5 * Now while used with "stored" can now return excerpts from document around a place where search word is found. (requires mnogosearch php extension version 1.63 or later and mnogosearch-3.2.5 or later) * Some minor bugfixes 01 Jul 2002: 3.2.0.beta4 * Updated to use latest mnogosearch-3.2.5+ features * Separate DBMode command was removed. (if using with mnogo-3.2.5+) * DBAddr command was extended to support this syntax: DBAddr mysql://user:pass@host/dbname/?dbmode=multi (if using with mnogo-3.2.5+) * Removed "SearchdAddr hostname:port" template command. Use "DBAddr searchd://hostame:port/" instead. (if using with mnogo-3.2.5+) 09 Apr 2002: 3.2.0.beta3 * New "Alias" command in search.htm. It works like "Alias" in indexer.conf but at a search time. Does not support regex expressions. * Make script does not require register_globals PHP setting. * Search template updated. 20 Mar 2002: 3.2.0.beta2 * Full support of multiple URL limits feature has been added Now <SELECT name=ul MULTIPLE> is supported. * Support of multiple TAG limits feature has been added * Support of multiple Language limits feature has been added * Support of multiple categories limits feature has been added (but notice that it is intended not to use with <SELECT name=cat multiple>..., but only with multiple categories in URL such as &cat=xxx&cat=yyy, or in several hidden form parameters) * Tag values are now passed using "tag" form variable so that the variable meaning is more clean. Old "g" form variable does not work anymore. This is done to force more compatibility with search.cgi * Default search template updated * Some code clean-ups * Some bugfixes 10 Dec 2001: 3.2.0.beta1 * Search daemon support has been added * Synonyms support has been added * Stored support has been added * A new section <!--stored--> has been added to search template * A new variable $(stored) has been added to search template * Initial support of multiple URL limits feature has been added * Some bugfixes 05 Nov 2001: 3.2.0.beta0 * It is the major update to support mnogosearch-3.2.x To use mnogosearch-3.2 features you will need at least PHP-4.0.8+, or latest PHP4 snapshots which can be downloaded from http://snaps.php.net * Currently not implemented: Synonyms support, stored support, clones support and searchd support * New features: Unicode support, Words hilighting * Some bugfixes 05 Jul 2001: 3.1.3.5 * A bug in categories stuff and php 4.0.6+ has been fixed. 25 Jun 2001: 3.1.3.4 * New VarDir variable in search template has been added. Requires php-4.0.7+ * A bug with IspellPrefixes does not work has been fixed. * Default search template updated. 23 May 2001: 3.1.3.3 * auto_wild feature has been added to simplify url limit at the search template. If your ul variable begins with 'http://','https://','news://' or 'ftp://' the auto wild feature automatically adds % metacharacter only to the end. At the other case it will add % both to the begin and to the end of ul. * auto_wild config variable has been added. The default value is 'yes'. * A bug with switching search 'any' mode has been fixed * Some minor template fixes 07 May 2001: 3.1.3.2 * A bugs in page navigator has been fixed. 03 May 2001: 3.1.3.1 * A bugs in ispell loading code has been fixed. * Categories stuff support has been added to display category path for search results and browsing categories. Requires php-4.0.6+ * Udm agent allocation bug has been fixed. 21 April 2001: 3.1.3.0 * This is the new generation search frontend which uses native php-4.0.5+ mnoGoSearch extension functions. So this incredibly speedups script and greately improve its possibilities. 18 February 2001: 3.1.2.5 * This is possible the last release in the stable branch 3.1.2 The next branch will be written to support new native php-4.0.5 mnoGoSearch extension functions. * Query language parser extended to correctly understand queries like "word ~ (word3 | word4)" * $ndoc search template variable has been added to print total number of documents in database. 20 December 2000: 3.1.2.4 * Query language parser extended to correctly understand queries like "(word1 & word2)(word3 & word4)" * A bug in query language parser has bee fixed. The word 'NOT' has not been recognized as boolean 'not' operator. * "HLBeg" and "HLEnd" search.htm variable has been added. By using it you can specify how to hilight the words founded. HLBeg is prepended before the word. HLEnd is appended after the word. Defaults are "<b>" and "</b>" to comply with previous versions. 04 November 2000: 3.1.2.3 * A bug in mysql *multi modes has been fixed which caused incorrect wordsinfo generation. * New config.inc variable $lang_url_translation to enable language files translation, for example url "path/file.en.ext" will be translated into "path/file". This is suitable only when using language content negotiation. 29 October 2000: 3.1.2.2 * A bug with lost tags in navigator links has been fixed * A bug in boolean query language in OR queries which appeared since 3.1.2.1 has been fixed. 28 October 2000: 3.1.2.1 * Project name changed to mnoGoSearch-php. For details please look at out site http://search.mnogo.ru * db_func API has been changed. Old function names are not removed, but substituted by wrappers to new functions. Since now db_func will be released as a separate product called 'mnoGoSearch-db_func-php' also. * A bug in query language parser which can cause empty results on queryes like 'mydomain.de' has been fixed * The ParseDocText has been extended to highlight stopwords also. * New config.inc variable '$highlight_stopwords' added to turn on or off stopwords highlighting in the search results. * Query language parser extended to correctly understand queries like "(word1 & word2) ~word3" * Query language parser extended to correctly understand queries like "(word1 word2) word3" and "word3 (word1 word2)" * A bug with incorrect charset recoding with Russian Apache has been fixed. * Navigator maker has been changed not to include params containing default values to its hrefs. This makes query string much shorter. 14 October 2000: 3.1.2.0 * Added ability to connect to MySQL and PostgreSQL through the local unix socket. To do that you shound leave dbhost field blank or set it to '_socket'. For example you can use this: DBAddr mysql://udm:udm@/udm/ * Added language content negotiation feature. Thanks to Craig Small <csmall@eye-net.com.au>. For details please refer to doc/negotiation.txt * $template_file variable moved from config.inc to search.php to enable language content negotiation and to use different search.php scripts with different templates with the same .inc files. * Added initial soundex support. Thanks for an idea to artwells me@artwells.com. * Added $SDX search template variable, which is substituted by soundex search suggestions. Useful in <!--notfound--> template section. Examples can be found in default templates. * Added contrib directory to store additional tools and scripts which extends UdmSearch-php features. Now it contains soundex create scripts. * Fixed bug in get_dict_tab function which prevents using *dict32 tables at all. * Changed package directory structure: added doc, samples and src directories containing some modified docs from udmsearch, template samples and sources accordingly. * GNU license added to package. 30 September 2000: 3.1.1.2 * Added additional words info for mysql bases only in crc-multi and multi modes. Now it shows count of words in the database. Thanx to Alex Barkov for idea. * Fixed dropping temporary table bug while searching only from stopword in *multi modes. * New $DY template variable to display current document category. * New $rus_bool_lang config.inc variable. (Default - 'no'). If set to 'yes' the query language is enchanced with russian equivalents of 'and','or','not'. * New $DE template variable. It displays description when not empty and text overwise. * New $SearchTime template variable. It cannot be used in 'top' template sestion. * Default templates changed with examples with new variables 17 September 2000: 3.1.1.1 * Default templates categories section changed to include hidden input field with $cat value. * Boolean language parser changed to correctly work with queries such as: "word1 ~word2". * Added new search restriction by language. Default templates are changed with examples. * New search.php parameter $lang has beed added. * "$lang" template variable to display current url language restriction. Modified Matthew Sullivan <matthew@netscape.com> patches: * Debug info extended somewhere to include function names * Get over the rand() bug in PHP 4 (this may have been fixed in PHP 4 Patch 1). * Remove query errors such as '(&' and '&|' operators. 02 September 2000: 3.1.1.0 * Nested categories support has been added. * "$CP" template variable to display category path has been added. * "$CS" template variable to display current category subtree has been added. * "cat" search.php parameter has been added to pass the category to search through. * "$cat" template variable to display current category ID. * Default templates are extended with new features examples. * Changed grep usage in IspellMode text to quote regexp. * Extended $W (wordsinfo) capabilities to show all words that we are looking for (useful when using ispell to see words with their normal forms found) * Many small changes in init code, navigator maker and database initialization errors reporting. 26 July 2000: 3.1.0.2 * New advanced search options (time limits). You can search for recent pages and so on the same as in udmsearch cgi frontend. * Fixed bug in query parser which prevented right search on queries contained special symbols. * Tag restriction now tested with SQL LIKE operator now in 3.1+ db format. So you can use SQL metacharacters '_' and '%' in search template to make search on group of tags. 22 July 2000: 3.1.0.1 * Added code to speed up search.php in crc* modes under php-4.0.1 and later by using native crc32 function. Php-4.0.1 and later determined automatically. * Now search.php don't print noquery template section while executed without any arguments. 16 July 2000: 3.1.0.0 * This is a first release that support new udmsearch 3.1.x database structure. * Added $db_format config.inc variable to switch between old 3.0 database and new. * If Last_Modified time of document is not known, then print 'undefined' in res template * Locale support extended to print localized date and time for Last_Modified id using new 3.1 database * Added Query tracking (same as in udmsearch 3.1.x) feature. Also added TrackQuery config.inc variable to set default value for TrackQuery and added TrackQuery template variable to turn this feature on or off. * Fixed minor bug when query contains single quotes. * Added printing $g, $ul, $ue, $m, $o and $ps variables in search template. Now you can place this variables anywhere in template and it will be substituted with its current value. * $g template variable has been improved to support parameter $g(X). This displays a tag without X trailing characters. * $pn template variable added (it is substituted by $ps*$np) 11 July 2000: 3.0.4.4 * Version numeration changed. Now two major version numbers are the same as corresponding udmsearch major version number. No changes in source code. 08 July 2000: 3.4.4 maintenance release * Corrected two deep serious bugs in ispell support. * Query parser changes to not filter rare national charset symbols. 25 June 2000: 3.4.3 * Added and reniced ispell debug output * <!--noquery--> template section added. It's printed if user makes an empty search. * <!--navleft_nop--> template section added. It's printed in search navigator on the first page. * <!--navright_nop--> template section added. It's printed in search navigator on the last page. * Minor changes in search navigator code. * Stopwords detection function optimized to cache previous calls results. * Query maker changes to correct AND type queries, where stopwords exists. 10 June 2000: 3.4.2 * $q template variable added to comply with udmsearch-3.0.18 This variable substituted with RFC-1738 encoded query. (Note that $Q variable substituted by query as is). 10 June 2000: 3.4.1 * Reworked ispell code to use classes. Now boring parallel arrays are eliminated. * Changed exit routines to minimize "exit" calls. Now you can use search routines in other script by doing PHP inslude('search.php') syntax. Thanx to many users who suggested this feature. 29 May 2000: 3.4 * search.php proved to be Microsoft Windows compatible * ODBC mode added for all supported SQL backends (MySQL,Oracle 7 and 8, PostgreSQL) 25 May 2000: 3.3.8.stable * This is the first stable release of PHP frontend. * $DEFAULT_QUERY_TYPE variable added to config.inc to specify default query type (if no boolean operators found) * Added <select name="m"> ... in search template and $m template handler variable (such as in search.cgi) to specify default query type in template. This option has higher priority than $DEFAULT_QUERY_TYPE. * Bugfixes in boolean language parser 20 May 2000: 3.3.7.RC1 * This is the primarily bugfix release intended to be stable RC1. If there will be no bugs found in the near future it will be renamed to 3.3.8 stable version. * Changes in query language: 1. "and" query operator now can be specified as "&", "and", or "É" (in russian) 2. "or" query operator now can be specified as "|", "or", or "ÉÌÉ" (in russian) 3. "not" query operator now can be specified as "~", "not", "without" or "ÎÅ","ÂÅÚ" (in russian) * Bugfix in navigator with output format $o variable * Search template and template functions extended to support resstricted search by tag. * Added RFC-1738 compatible url parameters encoding and decoding where it is needed. * Added stopwords reporting in wordsinfo ($W template variable). * Changed default templates <!--notfound--> section to show stopwords information when query pduce no results. 14 May 2000: 3.3.6 * Bugfix in query maker with stopwords 13 May 2000: 3.3.5 * Light optimizations in queries sent to backend * Bugfix in crc-multi mode with oracle backend 12 May 2000: 3.3.4 * Speed optimizations in ispell support * Bugfixes with capital letters both in ispell mode and without ispell support * Added new config variable in config.inc: "LC_ALL" to hardcode locale settings. If you want to get locale settings from environment, then you sould not define it. * Some fixes in locale support 03 May 2000: 3.3.3 * Bugfixes with error messages reporting 03 May 2000: 3.3.2 * Fixed bug with dropping temporary tables. * configuration part of search.php3 moved to config.inc file * intitialization part of search.php3 moved to init.inc file * common functions part of search.php3 moved to common.inc file 03 May 2000: 3.3.1 * Fixed bug with ispell support in DB mode. 29 April 2000: 3.3 * Many major changes in query maker. Please use this version carefully because of it is not fully tested yet. * Added "crc-multi" storage mode support for all supported backends. * Added "multi" storage mode support for mysql backend. * in "*multi" modes with mysql 3.23.02 and newer search.php3 tries to use native TEMPORARY tables. * Some bugfixes in query maker. * Some bugfixes with working with temporary tables. 26 April 2000: 3.2.7 * "DBAddr" template variable has been added. One may configure all database parameters at once: "DBAddr mysql://user:passwd@hostname:port/database_name/". Old style DBType, DBUser, DBPass, DBHost, DBPort, DBName commands still supported, but can be removed in the next releases. 19 April 2000: 3.2.6 * Fixed bug with false clone url detection * Added httpres and ftpres template sections to show different result formats according to url protocol. If ftpres or httpres not defined then res section will be used by default. 17 April 2000: 3.2.5 * Added "Clones yes/no" variable in search template. Default is "yes". 16 April 2000: 3.2.4 * Added output format $o variable in template. Now you can specify different output formats for your query by choosig appropiate option in listbox. 12 April 2000: 3.2.3 * Changed template parsing functions. 11 April 2000: 3.2.2 * Added found words highlighting by <b></b> html tags. * Changed default query type from "OR" to "AND". This means that if user make query with several words separated by spaces then script assumes "AND" query logic. * Fixed bug if someone makes query consisting of stopwords. 9 April 2000: 3.2.1 * Added $IF(filename.ext) template macro. This macro replaces itself with the specified file. 8 April 2000: 3.2 * Added "crc" storage mode support. This mode allows to reduce required disc space as well as speed up search. 5 April 2000: 3.1.2 * Added Oracle7 backend support both in single and multidict mode ( used patch from Roman V. Petrov poma@mail.ru ) 7 March 2000: 3.1.1 * Added ispell support (plain text files mode). 3 March 2000: 3.1 * Added ispell support (database mode). 23 February 2000: 3.0.2 * Added <ue> template variable. This is an url exclusion string. Makes script to search only urls, which don't contain this string. * Several bug fixes and minor optimizations. 17 February 2000: 3.0.1 * PostgreSQL backend support both in single and multidict mode * Several bug fixes. 05 February 2000: 3.0.0 * First public release