engine for fulltext search can be configured

This commit is contained in:
Uwe Steinmann 2015-08-10 21:41:51 +02:00
parent ae6044bc77
commit b0413a0d46
4 changed files with 38 additions and 0 deletions

View File

@ -87,6 +87,8 @@ class Settings { /* {{{ */
var $_stopWordsFile = null; var $_stopWordsFile = null;
// enable/disable lucene fulltext search // enable/disable lucene fulltext search
var $_enableFullSearch = true; var $_enableFullSearch = true;
// fulltext search engine
var $_fullSearchEngine = 'lucene';
// contentOffsetDirTo // contentOffsetDirTo
var $_contentOffsetDir = "1048576"; var $_contentOffsetDir = "1048576";
// Maximum number of sub-directories per parent directory // Maximum number of sub-directories per parent directory
@ -347,6 +349,7 @@ class Settings { /* {{{ */
$this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]); $this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]);
$this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]); $this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]);
$this->_enableFullSearch = Settings::boolVal($tab["enableFullSearch"]); $this->_enableFullSearch = Settings::boolVal($tab["enableFullSearch"]);
$this->_fullSearchEngine = strval($tab["fullSearchEngine"]);
$this->_stopWordsFile = strval($tab["stopWordsFile"]); $this->_stopWordsFile = strval($tab["stopWordsFile"]);
$this->_sortUsersInList = strval($tab["sortUsersInList"]); $this->_sortUsersInList = strval($tab["sortUsersInList"]);
$this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]); $this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]);
@ -619,6 +622,7 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector); $this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector);
$this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector); $this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector);
$this->setXMLAttributValue($node, "enableFullSearch", $this->_enableFullSearch); $this->setXMLAttributValue($node, "enableFullSearch", $this->_enableFullSearch);
$this->setXMLAttributValue($node, "fullSearchEngine", $this->_fullSearchEngine);
$this->setXMLAttributValue($node, "expandFolderTree", $this->_expandFolderTree); $this->setXMLAttributValue($node, "expandFolderTree", $this->_expandFolderTree);
$this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile); $this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile);
$this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList); $this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList);

View File

@ -88,4 +88,28 @@ if (get_magic_quotes_gpc()) {
} }
unset($process); unset($process);
} }
if($settings->_enableFullSearch) {
if($settings->_fullSearchEngine == 'sqlitefts') {
$indexconf = array(
'Indexer' => 'SeedDMS_SQLiteFTS_Indexer',
'Search' => 'SeedDMS_SQLiteFTS_Search',
'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument'
);
require_once('SeedDMS/SQLiteFTS.php');
} else {
$indexconf = array(
'Indexer' => 'SeedDMS_Lucene_Indexer',
'Search' => 'SeedDMS_Lucene_Search',
'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument'
);
if(!empty($settings->_luceneClassDir))
require_once($settings->_luceneClassDir.'/Lucene.php');
else
require_once('SeedDMS/Lucene.php');
}
}
?> ?>

View File

@ -67,6 +67,7 @@ if ($action == "saveSettings")
$settings->_enableEmail =getBoolValue("enableEmail"); $settings->_enableEmail =getBoolValue("enableEmail");
$settings->_enableUsersView = getBoolValue("enableUsersView"); $settings->_enableUsersView = getBoolValue("enableUsersView");
$settings->_enableFullSearch = getBoolValue("enableFullSearch"); $settings->_enableFullSearch = getBoolValue("enableFullSearch");
$settings->_fullSearchEngine = $_POST["fullSearchEngine"];
$settings->_enableClipboard = getBoolValue("enableClipboard"); $settings->_enableClipboard = getBoolValue("enableClipboard");
$settings->_enableDropUpload = getBoolValue("enableDropUpload"); $settings->_enableDropUpload = getBoolValue("enableDropUpload");
$settings->_enableFolderTree = getBoolValue("enableFolderTree"); $settings->_enableFolderTree = getBoolValue("enableFolderTree");

View File

@ -161,6 +161,15 @@ if(!is_writeable($settings->_configFilePath)) {
<td><?php printMLText("settings_enableFullSearch");?>:</td> <td><?php printMLText("settings_enableFullSearch");?>:</td>
<td><input name="enableFullSearch" type="checkbox" <?php if ($settings->_enableFullSearch) echo "checked" ?> /></td> <td><input name="enableFullSearch" type="checkbox" <?php if ($settings->_enableFullSearch) echo "checked" ?> /></td>
</tr> </tr>
<tr title="<?php printMLText("settings_fullSearchEngine_desc");?>">
<td><?php printMLText("settings_fullSearchEngine");?>:</td>
<td>
<select name="fullSearchEngine">
<option value="lucene" <?php if ($settings->_fullSearchEngine=='lucene') echo "selected" ?>><?php printMLText("settings_fullSearchEngine_vallucene");?></option>
<option value="sqlitefts" <?php if ($settings->_fullSearchEngine=='sqlitefts') echo "selected" ?>><?php printMLText("settings_fullSearchEngine_valsqlitefts");?></option>
</select>
</td>
</tr>
<tr title="<?php printMLText("settings_stopWordsFile_desc");?>"> <tr title="<?php printMLText("settings_stopWordsFile_desc");?>">
<td><?php printMLText("settings_stopWordsFile");?>:</td> <td><?php printMLText("settings_stopWordsFile");?>:</td>
<td><input type="text" name="stopWordsFile" value="<?php echo $settings->_stopWordsFile; ?>" size="100" /></td> <td><input type="text" name="stopWordsFile" value="<?php echo $settings->_stopWordsFile; ?>" size="100" /></td>