mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-03-12 00:45:34 +00:00
add new field 'indexed'
This commit is contained in:
parent
a81f51c17c
commit
20d368ec99
|
@ -151,8 +151,9 @@ class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document {
|
|||
if($version) {
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('mimetype', $version->getMimeType()));
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('origfilename', $version->getOriginalFileName()));
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('created', $version->getDate(), 'unindexed'));
|
||||
if(!$nocontent)
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('created', $version->getDate(), 'unindexed'));
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('indexed', time(), 'unindexed'));
|
||||
if($attributes = $version->getAttributes()) {
|
||||
foreach($attributes as $attribute) {
|
||||
$attrdef = $attribute->getAttributeDefinition();
|
||||
|
@ -226,6 +227,7 @@ class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document {
|
|||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('document_id', 'F'.$document->getID()));
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('record_type', 'folder'));
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('created', $document->getDate(), 'unindexed'));
|
||||
$this->addField(SeedDMS_SQLiteFTS_Field::Keyword('indexed', time(), 'unindexed'));
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
|
|
|
@ -77,9 +77,9 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
$version = SQLite3::version();
|
||||
if(self::ftstype == 'fts4') {
|
||||
if($version['versionNumber'] >= 3008000)
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, status, path, notindexed=created, matchinfo=fts3)';
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created, indexed, users, status, path, notindexed=created, notindexed=indexed, matchinfo=fts3)';
|
||||
else
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, status, path, matchinfo=fts3)';
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created, indexed, users, status, path, matchinfo=fts3)';
|
||||
$res = $index->_conn->exec($sql);
|
||||
if($res === false) {
|
||||
return null;
|
||||
|
@ -90,7 +90,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
return null;
|
||||
}
|
||||
} elseif(self::ftstype == 'fts5') {
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts5(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created unindexed, users, status, path)';
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts5(documentid, record_type, title, comment, keywords, category, mimetype, origfilename, owner, content, created unindexed, indexed unindexed, users, status, path)';
|
||||
$res = $index->_conn->exec($sql);
|
||||
if($res === false) {
|
||||
return null;
|
||||
|
@ -123,7 +123,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
if(!$this->_conn)
|
||||
return false;
|
||||
|
||||
foreach(array('comment', 'keywords', 'category', 'content', 'mimetype', 'origfilename', 'status', 'created') as $kk) {
|
||||
foreach(array('comment', 'keywords', 'category', 'content', 'mimetype', 'origfilename', 'status', 'created', 'indexed') as $kk) {
|
||||
try {
|
||||
${$kk} = $doc->getFieldValue($kk);
|
||||
} catch (Exception $e) {
|
||||
|
@ -135,7 +135,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
if($res === false) {
|
||||
return false;
|
||||
}
|
||||
$sql = "INSERT INTO docs (documentid, record_type, title, comment, keywords, category, owner, content, mimetype, origfilename, created, users, status, path) VALUES (".$this->_conn->quote($doc->getFieldValue('document_id')).", ".$this->_conn->quote($doc->getFieldValue('record_type')).", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($comment).", ".$this->_conn->quote($keywords).", ".$this->_conn->quote($category).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($content).", ".$this->_conn->quote($mimetype).", ".$this->_conn->quote($origfilename).", ".(int)$created.", ".$this->_conn->quote($doc->getFieldValue('users')).", ".$this->_conn->quote($status).", ".$this->_conn->quote($doc->getFieldValue('path'))/*time()*/.")";
|
||||
$sql = "INSERT INTO docs (documentid, record_type, title, comment, keywords, category, owner, content, mimetype, origfilename, created, indexed, users, status, path) VALUES (".$this->_conn->quote($doc->getFieldValue('document_id')).", ".$this->_conn->quote($doc->getFieldValue('record_type')).", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($comment).", ".$this->_conn->quote($keywords).", ".$this->_conn->quote($category).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($content).", ".$this->_conn->quote($mimetype).", ".$this->_conn->quote($origfilename).", ".(int)$created.", ".(int)$indexed.", ".$this->_conn->quote($doc->getFieldValue('users')).", ".$this->_conn->quote($status).", ".$this->_conn->quote($doc->getFieldValue('path'))/*time()*/.")";
|
||||
$res = $this->_conn->exec($sql);
|
||||
if($res === false) {
|
||||
return false;
|
||||
|
@ -324,7 +324,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
if(!$this->_conn)
|
||||
return false;
|
||||
|
||||
$sql = "SELECT ".$this->_rawid.", documentid, title, comment, owner, keywords, category, mimetype, origfilename, created, users, status, path".($content ? ", content" : "")." FROM docs WHERE ".$this->_rawid."='".$id."'";
|
||||
$sql = "SELECT ".$this->_rawid.", documentid, title, comment, owner, keywords, category, mimetype, origfilename, created, indexed, users, status, path".($content ? ", content" : "")." FROM docs WHERE ".$this->_rawid."='".$id."'";
|
||||
$res = $this->_conn->query($sql);
|
||||
$doc = false;
|
||||
if($res) {
|
||||
|
@ -341,6 +341,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
$doc->addField(SeedDMS_SQLiteFTS_Field::Keyword('origfilename', $rec['origfilename']));
|
||||
$doc->addField(SeedDMS_SQLiteFTS_Field::Text('owner', $rec['owner']));
|
||||
$doc->addField(SeedDMS_SQLiteFTS_Field::Keyword('created', $rec['created']));
|
||||
$doc->addField(SeedDMS_SQLiteFTS_Field::Keyword('indexed', $rec['indexed']));
|
||||
$doc->addField(SeedDMS_SQLiteFTS_Field::Text('users', $rec['users']));
|
||||
$doc->addField(SeedDMS_SQLiteFTS_Field::Keyword('status', $rec['status']));
|
||||
$doc->addField(SeedDMS_SQLiteFTS_Field::Keyword('path', $rec['path']));
|
||||
|
|
|
@ -53,6 +53,7 @@ class SeedDMS_SQLiteFTS_QueryHit {
|
|||
*/
|
||||
public function __construct(SeedDMS_SQLiteFTS_Indexer $index) { /* {{{ */
|
||||
$this->_index = $index;
|
||||
$this->_document = null;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
|
|
@ -60,7 +60,8 @@ class SeedDMS_SQLiteFTS_Term {
|
|||
9 => 'created',
|
||||
10 => 'user',
|
||||
11 => 'status',
|
||||
12 => 'path'
|
||||
12 => 'path',
|
||||
13 => 'indexed',
|
||||
);
|
||||
/* fts5 pass the column name in $col, fts4 uses an integer */
|
||||
if(is_int($col))
|
||||
|
|
Loading…
Reference in New Issue
Block a user