Commit 5b3e63cd5c9b0fab4c68361ebf44e582c0603b94
1 parent
b1b78609
Merged in from DEV trunk...
KTS-673 "The search algorithm needs some work" Updated. Committed By: Conrad Vermeulen Reviewed By: Kevin Fourie KTS-2429 "config.ini must be updated during upgrade for new search to work." In Progress. Added upgrade function. Still needs testing. Committed By: Kevin Fourie Reviewed By: Conrad Vermeulen KTS-2429 "config.ini must be updated during upgrade for new search to work." Done. Committed By: Kevin Fourie Reviewed By: Conrad Vermeulen git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@7355 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
8 changed files
with
178 additions
and
14 deletions
config/config.ini
| ... | ... | @@ -139,7 +139,7 @@ dot = dot |
| 139 | 139 | |
| 140 | 140 | [i18n] |
| 141 | 141 | ; Default language for the interface |
| 142 | -defaultLanguage = de_DE | |
| 142 | +defaultLanguage = en | |
| 143 | 143 | ; If your language doesn't have distinguishable words (usually, doesn't |
| 144 | 144 | ; have a space character), set useLike to true to use a search that can |
| 145 | 145 | ; deal with this, but which is slower. | ... | ... |
lib/upgrades/Ini.inc.php
| ... | ... | @@ -40,7 +40,7 @@ class Ini { |
| 40 | 40 | var $lineNum = 0; |
| 41 | 41 | var $exists = ''; |
| 42 | 42 | |
| 43 | - function Ini($iniFile = '../../../config.ini') { | |
| 43 | + function Ini($iniFile = '../../config.ini') { | |
| 44 | 44 | $this->iniFile = $iniFile; |
| 45 | 45 | $this->read($iniFile); |
| 46 | 46 | } |
| ... | ... | @@ -159,7 +159,7 @@ class Ini { |
| 159 | 159 | /* |
| 160 | 160 | // USAGE EXAMPLE |
| 161 | 161 | |
| 162 | -if(file_exists('../../../config.ini')) { | |
| 162 | +if(file_exists('../../config.ini')) { | |
| 163 | 163 | |
| 164 | 164 | $ini = new Ini(); |
| 165 | 165 | $ini->addItem('Section1', 'NewItem1', 'Some Text1', 'Item1 Comment', 'Section1 Comment'); | ... | ... |
lib/upgrades/UpgradeFunctions.inc.php
| ... | ... | @@ -29,6 +29,8 @@ |
| 29 | 29 | * |
| 30 | 30 | */ |
| 31 | 31 | |
| 32 | +require_once(KT_LIB_DIR . '/upgrades/Ini.inc.php'); | |
| 33 | + | |
| 32 | 34 | class UpgradeFunctions { |
| 33 | 35 | var $upgrades = array( |
| 34 | 36 | '2.0.0' => array('setPermissionFolder'), |
| ... | ... | @@ -46,7 +48,7 @@ class UpgradeFunctions { |
| 46 | 48 | '3.0.3.7' => array('rebuildAllPermissions'), |
| 47 | 49 | '3.1.5' => array('upgradeSavedSearches'), |
| 48 | 50 | '3.1.6.3' => array('cleanupGroupMembership'), |
| 49 | - '3.5.0' => array('cleanupOldKTAdminVersionNotifier', 'registerExtractorMapping'), | |
| 51 | + '3.5.0' => array('cleanupOldKTAdminVersionNotifier', 'registerExtractorMapping', 'updateConfigFile35'), | |
| 50 | 52 | ); |
| 51 | 53 | |
| 52 | 54 | var $descriptions = array( |
| ... | ... | @@ -67,7 +69,8 @@ class UpgradeFunctions { |
| 67 | 69 | 'upgradeSavedSearches' => 'Upgrade saved searches to use namespaces instead of integer ids', |
| 68 | 70 | 'cleanupGroupMembership' => 'Cleanup any old references to missing groups, etc.', |
| 69 | 71 | 'cleanupOldKTAdminVersionNotifier' => 'Cleanup any old files from the old KTAdminVersionNotifier', |
| 70 | - 'registerExtractorMapping' => 'Register document text extractors with the appropriate mime types' | |
| 72 | + 'registerExtractorMapping' => 'Register document text extractors with the appropriate mime types', | |
| 73 | + 'updateConfigFile35' => 'Update the config.ini file for 3.5', | |
| 71 | 74 | ); |
| 72 | 75 | var $phases = array( |
| 73 | 76 | "setPermissionFolder" => 1, |
| ... | ... | @@ -903,12 +906,83 @@ class UpgradeFunctions { |
| 903 | 906 | } |
| 904 | 907 | // }}} |
| 905 | 908 | |
| 909 | + // {{{ registerExtractorMapping | |
| 906 | 910 | function registerExtractorMapping() |
| 907 | 911 | { |
| 908 | 912 | $indexer = Indexer::get(); |
| 909 | 913 | $indexer->registerTypes(); |
| 910 | 914 | } |
| 915 | + // }}} | |
| 916 | + | |
| 917 | + // {{{ updateConfigFile35 | |
| 918 | + function updateConfigFile35() | |
| 919 | + { | |
| 920 | + if(file_exists('../../config.ini')) { | |
| 921 | + | |
| 922 | + $ini = new Ini(); | |
| 923 | + | |
| 924 | + // Webservices Section | |
| 925 | + $ini->addItem('webservice', 'uploadDirectory', '${varDirectory}/uploads'); | |
| 926 | + $ini->addItem('webservice', 'downloadUrl', '${rootUrl}/ktwebservice/download.php'); | |
| 927 | + $ini->addItem('webservice', 'uploadExpiry', '30'); | |
| 928 | + $ini->addItem('webservice', 'downloadExpiry', '30'); | |
| 929 | + $ini->addItem('webservice', 'randomKeyText', 'bkdfjhg23yskjdhf2iu'); | |
| 930 | + $ini->addItem('webservice', 'validateSessionCount', 'false'); | |
| 931 | + | |
| 932 | + // externalBinary Section | |
| 933 | + $ini->addItem('externalBinary', 'xls2csv', 'xls2csv', '', 'The following are external binaries that may be used by various parts of knowledgeTree.'); | |
| 934 | + $ini->addItem('externalBinary', 'pdftotext', 'pdftotext'); | |
| 935 | + $ini->addItem('externalBinary', 'catppt', 'catppt'); | |
| 936 | + $ini->addItem('externalBinary', 'pstotext', 'pstotext'); | |
| 937 | + $ini->addItem('externalBinary', 'catdoc', 'catdoc'); | |
| 938 | + $ini->addItem('externalBinary', 'antiword', 'antiword.exe'); | |
| 939 | + | |
| 940 | + // search Section | |
| 941 | + $ini->addItem('search', 'resultsPerPage', 'default', "The number of results per page\r\n; defaults to 25"); | |
| 942 | + $ini->addItem('search', 'dateFormat', 'default', "The date format used when making queries using widgets\r\n; defaults to Y-m-d"); | |
| 943 | + | |
| 944 | + // indexer Section | |
| 945 | + $ini->addItem('indexer', 'coreClass', 'JavaXMLRPCLuceneIndexer', "The core indexing class\r\n;coreClass=PHPLuceneIndexer"); | |
| 946 | + $ini->addItem('indexer', 'batchDocuments', 'default', "The number of documents to be indexed in a cron session\r\n; defaults to 20"); | |
| 947 | + $ini->addItem('indexer', 'luceneDirectory', '${varDirectory}/indexes', "The location of the lucene indexes"); | |
| 948 | + | |
| 949 | + // openoffice Section | |
| 950 | + $ini->addItem('openoffice', 'host', 'default', "The host on which open office is installed\r\n; defaults to localhost"); | |
| 951 | + $ini->addItem('openoffice', 'port', 'default', "The port on which open office is listening\r\n; defaults to 8100"); | |
| 952 | + | |
| 953 | + // user_prefs Section | |
| 954 | + $ini->addItem('user_prefs', 'passwordLength', '6', "The minimum password length on password-setting\r\n; could be moved into DB-auth-config"); | |
| 955 | + $ini->addItem('user_prefs', 'restrictAdminPasswords', 'default', "Apply the minimum password length to admin while creating / editing accounts?\r\n; default is set to \"false\" meaning that admins can create users with shorter passwords."); | |
| 956 | + $ini->addItem('user_prefs', 'restrictPreferences', 'false', "Restrict users from accessing their preferences menus?"); | |
| 957 | + | |
| 958 | + // builtinauth Section | |
| 959 | + $ini->addItem('builtinauth', 'password_change_interval', '30', "This would force users that use the built-in authentication provider\r\n; to have to change their passwords every 30 days." ,"This is configuration for the built-in authentication provider"); | |
| 960 | + | |
| 961 | + // cache Section | |
| 962 | + $ini->addItem('cache', 'cacheEnabled', 'true', '', "Enable/disable the cache and set the cache location"); | |
| 963 | + $ini->addItem('cache', 'cacheDirectory', '${varDirectory}/cache'); | |
| 964 | + | |
| 965 | + // KTWebDAVSettings Section | |
| 966 | + $ini->addItem('KTWebDAVSettings', 'debug', 'off', '_LOTS_ of debug info will be logged if the following is "on"', 'This section is for KTWebDAV only'); | |
| 967 | + $ini->addItem('KTWebDAVSettings', 'safemode', 'on', 'To allow write access to WebDAV clients set safe mode to "off" below'); | |
| 968 | + | |
| 969 | + // BaobabSettings Section | |
| 970 | + $ini->addItem('BaobabSettings', 'debug', 'off', '_LOTS_ of debug info will be logged if the following is "on"', 'This section is for Boabab only'); | |
| 971 | + $ini->addItem('BaobabSettings', 'safemode', 'on', 'To allow write access to WebDAV clients set safe mode to "off" below'); | |
| 972 | + | |
| 973 | + // backup Section | |
| 974 | + $ini->addItem('backup', 'backupDirectory', 'default', "Identify location of kt-backup for database backups\r\n;backupDirectory = c:/kt-backups\r\n;backupDirectory = /tmp/kt-backups"); | |
| 975 | + $ini->addItem('backup', 'mysqlDirectory', 'default', "Identify the location of the mysql.exe and mysqldump.exe\r\n;mysqlDirectory = c:/program files/ktdms/mysql/bin"); | |
| 976 | + | |
| 977 | + // clientToolPolicies Section | |
| 978 | + $ini->addItem('clientToolPolicies', 'explorerMetadataCapture', 'true', "These two settings control whether or not the client is prompted for metadata when a\r\n;document is added to knowledgetree via KTtools. They default to true."); | |
| 979 | + $ini->addItem('clientToolPolicies', 'officeMetadataCapture', 'true'); | |
| 980 | + | |
| 981 | + $ini->write(); | |
| 911 | 982 | |
| 983 | + } | |
| 984 | + } | |
| 985 | + // }}} | |
| 912 | 986 | } |
| 913 | 987 | |
| 914 | 988 | ?> | ... | ... |
search2/indexing/bin/registerTypes.php
| ... | ... | @@ -12,21 +12,14 @@ |
| 12 | 12 | */ |
| 13 | 13 | |
| 14 | 14 | session_start(); |
| 15 | -print _kt("Registering Extractor mapping to Mime types") . "...\n"; | |
| 16 | - | |
| 17 | 15 | require_once(realpath('../../../config/dmsDefaults.php')); |
| 18 | 16 | |
| 17 | +print _kt("Registering Extractor mapping to Mime types") . "...\n"; | |
| 18 | + | |
| 19 | 19 | $config = KTConfig::getSingleton(); |
| 20 | 20 | $indexer = $config->get('indexer/coreClass'); |
| 21 | 21 | |
| 22 | -if ($indexer != 'PHPLuceneIndexer') | |
| 23 | -{ | |
| 24 | - print _kt("This script only works with the PHPLuceneIndexer.") . "\n"; | |
| 25 | - exit; | |
| 26 | -} | |
| 27 | - | |
| 28 | 22 | require_once('indexing/indexerCore.inc.php'); |
| 29 | - | |
| 30 | 23 | $clear=false; |
| 31 | 24 | if ($argc > 0) |
| 32 | 25 | { | ... | ... |
templates/ktcore/search2/external_resources.smarty
0 → 100644
| 1 | +<h1>{i18n}External Resource Dependency Status{/i18n}</h1> | |
| 2 | +<P> | |
| 3 | +{i18n}The following resources are used by KnowledgeTree and are impacting on the normal operations of the system:{/i18n} | |
| 4 | +<table width="100%"> | |
| 5 | +<tr><th width="150">{i18n}Resource{/i18n}</th><th>{i18n}Status{/i18n}</th></tr> | |
| 6 | +{foreach from=$resources item=resource} | |
| 7 | +<tr><td valign=top><I>{$resource.name}</td><td>{$resource.status}</td> | |
| 8 | +<tr ><td colspan=2><hr></tr> | |
| 9 | +{/foreach} | |
| 10 | +<tr><td colspan=2 align=right><a href="/search2.php?action=refreshDashboardStatus" align=right>{i18n}Refresh{/i18n}</a></tr> | |
| 11 | +</table> | ... | ... |
templates/ktcore/search2/indexing_status.smarty
0 → 100644
| 1 | +{if !empty($indexerDiagnosis)} | |
| 2 | +{i18n arg_name=$indexerName}The #name# is not functioning correctly. This could be because:{/i18n} | |
| 3 | +<ul> | |
| 4 | +<li>{i18n}The indexer is not configured correctly.{/i18n} | |
| 5 | +<li>{i18n}The component on which the indexer depends is not available.{/i18n} | |
| 6 | +</ul> | |
| 7 | +{$indexerDiagnosis} | |
| 8 | +<br> | |
| 9 | +{/if} | |
| 10 | +{if count($extractorDiagnosis) > 0} | |
| 11 | +<br> | |
| 12 | +<b>{i18n}Text Extractor Status{/i18n}</b> | |
| 13 | +<br> | |
| 14 | +{i18n}KnowledgeTree has detected some issues with some of the text extractors used to index document text:{/i18n} | |
| 15 | +<br> | |
| 16 | +<table width="100%"> | |
| 17 | + <tr><td colspan=2><hr></td></tr> | |
| 18 | +{foreach from=$extractorDiagnosis item=diagnosis} | |
| 19 | + <tr> | |
| 20 | + <td colspan=2><i>{$diagnosis.problem}</i></td> | |
| 21 | + </tr> | |
| 22 | + <tr> | |
| 23 | + <td valign="top" width="100"><nobr>{i18n}Text extractor(s)s affected:{/i18n}</td> | |
| 24 | + <td align="left" valign=top><ul style="top: -30px"> | |
| 25 | + {foreach from=$diagnosis.indexers item=indexer} | |
| 26 | + <li><i>{$indexer}</i></li> | |
| 27 | + {/foreach} | |
| 28 | + </ul> | |
| 29 | + </td> | |
| 30 | + </tr> | |
| 31 | + <tr><td colspan=2><hr></td></tr> | |
| 32 | +{/foreach} | |
| 33 | +</table> | |
| 34 | +{/if} | |
| 35 | +<br> | |
| 36 | +<B>{i18n}Note:{/i18n}</b> {i18n}Indexing will not continue until all issues have been resolved.{/i18n} | |
| 37 | +<table width="100%"> | |
| 38 | +<tr> | |
| 39 | +<td align=right><a href="/search2.php?action=refreshDashboardStatus">Refresh</a> | |
| 40 | +</table> | ... | ... |
templates/ktcore/search2/lucene_migration.smarty
0 → 100644
| 1 | +<P> | |
| 2 | +Migration to using the new search requires text to be moved from the database full text indexes into the Lucene indexes. This may take some time depending | |
| 3 | +on the size of the repository. For this reason, the process is a background task. | |
| 4 | +<P> | |
| 5 | + | |
| 6 | +<table> | |
| 7 | +<tr><td>Documents processed in a single migration run:</td><td>20</td></tr> | |
| 8 | +<tr><td>Frequency at which migration batch task runs:</td><td>every 5 minutes</td></tr> | |
| 9 | +<tr><td>Total documents to migrate:</td><td>1500</td></tr> | |
| 10 | +<tr><td>Migration process started on:</td><td>2007-01-10 15:13</td></tr> | |
| 11 | +<tr><td>Migration process has taken:</td><td>15 hours 10 minutes</td></tr> | |
| 12 | +<tr><td>Total documents migrated:</td><td>1500</td></tr> | |
| 13 | +<tr><td>Total documents to be migrated:</td><td>1500</td></tr> | |
| 14 | +<tr><td>Estimated completion time:</td><td>2007-01-10 15:13</td></tr> | |
| 15 | +<tr><td>Estimated migration time remaining:</td><td>15 hours 10 minutes</td></tr> | |
| 16 | +</table> | |
| 17 | +<B>Note:</b> <i>Search results will not be accurate until the migration process is complete.</i> | |
| 18 | +<br>This dashlet will disappear when the migration process is complete. | |
| 19 | + | |
| 20 | +<br> | |
| 0 | 21 | \ No newline at end of file | ... | ... |
templates/ktcore/search2/lucene_statistics.smarty
0 → 100644
| 1 | +<P> | |
| 2 | +This dashlet provides some basic statistics on the Lucene index. | |
| 3 | +<P> | |
| 4 | + | |
| 5 | +<table> | |
| 6 | +<tr><td>Last optimisation date:</td><td>{$stats.optimisationDate}</td></tr> | |
| 7 | +<tr><td>Period since last optimisation:</td><td>{$stats.optimisationPeriod}</td></tr> | |
| 8 | +<tr><td>Last indexing date:</td><td>{$stats.indexingDate}</td></tr> | |
| 9 | +<tr><td>Period since last indexing:</td><td>{$stats.indexingPeriod}</td></tr> | |
| 10 | +<tr><td>Total documents in repository:</td><td>{$stats.docsInRepository}</td></tr> | |
| 11 | +<tr><td>Documents in index:</td><td>{$stats.docsInIndex}</td></tr> | |
| 12 | +<tr><td>Documents in indexing queue:</td><td>{$stats.docsInQueue}</td></tr> | |
| 13 | +<tr><td>Indexing coverage:</td><td>{$stats.indexingCoverage}</td></tr> | |
| 14 | +<tr><td>Queue coverage:</td><td>{$stats.queueCoverage}</td></tr> | |
| 15 | +</table> | |
| 16 | +<b>Notes:</b><br> | |
| 17 | +<table> | |
| 18 | +<tr><td valign=top>*<td>Not all documents contain text. This will explain why the indexing coverage percentage my vary. | |
| 19 | +<tr><td valign=top>*<td>The queue coverage indicates how many documents are in the queue in relation to the repository size. | |
| 20 | +{if $stats.noOptimisation} | |
| 21 | +<tr><td valign=top>*<td><i>To get the best performance out of Lucene, the indexes must be optimised periodically. This is managed by a background task. | |
| 22 | +{/if} | |
| 23 | +</table> | |
| 24 | +<table width="100%"> | |
| 25 | +<tr><td colspan=2 align=right><a href="/search2.php?action=refreshLuceneStats" align=right>Refresh</a></tr> | |
| 26 | +</table> | |
| 0 | 27 | \ No newline at end of file | ... | ... |