New Full Text Search
This commit is contained in:
@@ -41,7 +41,6 @@ class Databap extends PhpObject
|
||||
const IMG_TABLE = 'images';
|
||||
const DOC_TABLE = 'docs';
|
||||
const FILE_TABLE = 'files';
|
||||
const SEARCH_TABLE = 'searchs';
|
||||
const TABL_TABLE = 'tables';
|
||||
const TITLE_LEN = 200;
|
||||
|
||||
@@ -183,7 +182,6 @@ class Databap extends PhpObject
|
||||
|
||||
//Objects
|
||||
private $oMySql;
|
||||
private $oSearchEngine;
|
||||
private $oClassManagement;
|
||||
private $oAuth;
|
||||
|
||||
@@ -226,9 +224,6 @@ class Databap extends PhpObject
|
||||
//Passing settings down to mySQL
|
||||
$this->oMySql = new MySqlManager(Settings::DB_SERVER, Settings::DB_LOGIN, Settings::DB_PASS, Settings::DB_NAME, self::getSqlOptions(), Settings::DB_ENC);
|
||||
if($this->oMySql->sDbState == MySqlManager::DB_NO_DATA && Settings::DEBUG==true) $this->install();
|
||||
|
||||
//Init Search Engine
|
||||
$this->oSearchEngine = new SearchEngine($this->oMySql);
|
||||
}
|
||||
|
||||
public static function getSqlOptions()
|
||||
@@ -251,7 +246,6 @@ class Databap extends PhpObject
|
||||
self::IMG_TABLE => array(MySqlManager::getId(self::PROC_TABLE), MySqlManager::getId(self::STEP_TABLE), 'description', 'file_name'),
|
||||
self::DOC_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'title', 'description', 'refer_id'),
|
||||
self::FILE_TABLE => array('id_item', 'type', 'description', 'hash', 'extension'),
|
||||
self::SEARCH_TABLE => array('id_item', 'refer_id', 'type', 'keywords'),
|
||||
self::ART_TABLE => array('title', 'link', 'date', 'first_name', 'last_name', 'email'),
|
||||
self::TABL_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'title', 'description', 'system', 'keywords', 'refer_id')
|
||||
);
|
||||
@@ -292,10 +286,16 @@ class Databap extends PhpObject
|
||||
);
|
||||
$asOptions['constraints'] = array
|
||||
(
|
||||
self::USER_TABLE => "UNIQUE KEY `user_first_and_last_name` (`first_name`, `last_name`)",
|
||||
self::URL_TABLE => "UNIQUE KEY `uni_phrase` (`phrase`)",
|
||||
self::MSG_TABLE => "INDEX(`date`)",
|
||||
self::ART_TABLE => "INDEX(`title`)"
|
||||
self::USER_TABLE => "UNIQUE KEY `user_first_and_last_name` (`first_name`, `last_name`)",
|
||||
self::URL_TABLE => "UNIQUE KEY `uni_phrase` (`phrase`)",
|
||||
self::MSG_TABLE => "INDEX(`date`)",
|
||||
self::ART_TABLE => "INDEX(`title`), FULLTEXT(`title`)",
|
||||
self::CODE_TABLE => "FULLTEXT(`".MySqlManager::getText(self::CODE_TABLE)."`, `description`)",
|
||||
self::PROC_TABLE => "FULLTEXT(`title`, `description`)",
|
||||
self::STEP_TABLE => "FULLTEXT(`description`)",
|
||||
self::DOC_TABLE => "FULLTEXT(`title`, `description`)",
|
||||
self::FILE_TABLE => "FULLTEXT(`description`)",
|
||||
self::TABL_TABLE => "FULLTEXT(`title`, `description`, `keywords`)"
|
||||
);
|
||||
$asOptions['cascading_delete'] = array
|
||||
(
|
||||
@@ -629,7 +629,6 @@ class Databap extends PhpObject
|
||||
{
|
||||
$iArticleId = $this->oMySql->insertRow(self::ART_TABLE, $asArticle);
|
||||
$this->addMessage($iArticleId, self::MESSAGE_ARTICLE, self::DEFAULT_CHAN_ID);
|
||||
$this->oSearchEngine->buildIndex($iArticleId, self::ART_TYPE);
|
||||
$sResult = 'ADDED';
|
||||
}
|
||||
else $sResult = 'OK';
|
||||
@@ -888,16 +887,6 @@ class Databap extends PhpObject
|
||||
return $bExt?$this->getJsonPostResult(true, ''):$iUserId;
|
||||
}
|
||||
|
||||
public function buildCompleteIndex()
|
||||
{
|
||||
$this->oMySql->emptyTable(self::SEARCH_TABLE);
|
||||
foreach($this->getTypeInfo('table') as $sSearchType=>$sSearchTable)
|
||||
{
|
||||
$asItemIds = $this->oMySql->selectRows(array('select'=>MySqlManager::getId($sSearchTable), 'from'=>$sSearchTable));
|
||||
foreach($asItemIds as $iItemId) $this->oSearchEngine->buildIndex($iItemId, $sSearchType);
|
||||
}
|
||||
}
|
||||
|
||||
//insert new code / version
|
||||
public function addCode($asData)
|
||||
{
|
||||
@@ -924,9 +913,6 @@ class Databap extends PhpObject
|
||||
//Add message
|
||||
$this->addMessage($iCodeId, self::MESSAGE_ADD_CODE, self::DEFAULT_CHAN_ID);
|
||||
|
||||
//Add record in Search Table
|
||||
$this->oSearchEngine->buildIndex($iCodeId, self::CODE_TYPE);
|
||||
|
||||
return $iCodeId;
|
||||
}
|
||||
|
||||
@@ -944,9 +930,6 @@ class Databap extends PhpObject
|
||||
//Add message
|
||||
$this->addMessage($iCodeId, self::MESSAGE_EDIT_CODE, self::DEFAULT_CHAN_ID);
|
||||
|
||||
//Add record in Search Table
|
||||
$this->oSearchEngine->buildIndex($iCodeId, self::CODE_TYPE);
|
||||
|
||||
return $iCodeId;
|
||||
}
|
||||
|
||||
@@ -984,9 +967,6 @@ class Databap extends PhpObject
|
||||
{
|
||||
$this->addMessage($iNewProcId, self::MESSAGE_EDIT_PROC, self::DEFAULT_CHAN_ID);
|
||||
}
|
||||
|
||||
//Add record in Search Table
|
||||
$this->oSearchEngine->buildIndex($iNewProcId, self::PROC_TYPE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1065,9 +1045,6 @@ class Databap extends PhpObject
|
||||
//Add Message in chat
|
||||
$this->addMessage($iDbDocId, $bCreation?self::MESSAGE_ADD_DOC:self::MESSAGE_EDIT_DOC, self::DEFAULT_CHAN_ID);
|
||||
|
||||
//Add record in Search Table
|
||||
$this->oSearchEngine->buildIndex($iDbDocId, self::DOC_TYPE);
|
||||
|
||||
//TODO add error handling
|
||||
return $this->getJsonPostResult(true, '', array('doc_id'=>$iDbDocId));
|
||||
}
|
||||
@@ -1133,9 +1110,6 @@ class Databap extends PhpObject
|
||||
|
||||
//Add Message in chat
|
||||
$this->addMessage($iDbTableId, $bCreation?self::MESSAGE_ADD_TABLE:self::MESSAGE_EDIT_TABLE, self::DEFAULT_CHAN_ID);
|
||||
|
||||
//Add record in Search Table
|
||||
$this->oSearchEngine->buildIndex($iDbTableId, self::TABLE_TYPE);
|
||||
}
|
||||
}
|
||||
return $this->getJsonPostResult($iDbTableId>0, $sDesc, array('id'=>$iDbTableId, 'name'=>$sTitle));
|
||||
@@ -2859,8 +2833,11 @@ class Databap extends PhpObject
|
||||
return $sChanSafeName;
|
||||
}
|
||||
|
||||
public function getResults($sSearchWords)
|
||||
public function search($sSearchWords)
|
||||
{
|
||||
//Init Search Engine
|
||||
$this->oSearchEngine = new SearchEngine($this->oMySql);
|
||||
|
||||
$this->oSearchEngine->setWords($sSearchWords);
|
||||
$asResults = $this->oSearchEngine->getResults();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user