@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator

Support Ferret engine in Phriction

Summary: Ref T12819. Adds Ferret engine support.

Test Plan: Indexed and searched for documents.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12819

Differential Revision: https://secure.phabricator.com/D18567

+52
+9
resources/sql/autopatches/20170907.ferret.22.phriction.doc.sql
··· 1 + CREATE TABLE {$NAMESPACE}_phriction.phriction_document_fdocument ( 2 + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 + objectPHID VARBINARY(64) NOT NULL, 4 + isClosed BOOL NOT NULL, 5 + authorPHID VARBINARY(64), 6 + ownerPHID VARBINARY(64), 7 + epochCreated INT UNSIGNED NOT NULL, 8 + epochModified INT UNSIGNED NOT NULL 9 + ) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
+8
resources/sql/autopatches/20170907.ferret.23.phriction.field.sql
··· 1 + CREATE TABLE {$NAMESPACE}_phriction.phriction_document_ffield ( 2 + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 + documentID INT UNSIGNED NOT NULL, 4 + fieldKey VARCHAR(4) NOT NULL COLLATE {$COLLATE_TEXT}, 5 + rawCorpus LONGTEXT NOT NULL COLLATE {$COLLATE_SORT}, 6 + termCorpus LONGTEXT NOT NULL COLLATE {$COLLATE_SORT}, 7 + normalCorpus LONGTEXT NOT NULL COLLATE {$COLLATE_SORT} 8 + ) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
+5
resources/sql/autopatches/20170907.ferret.24.phriction.ngrams.sql
··· 1 + CREATE TABLE {$NAMESPACE}_phriction.phriction_document_fngrams ( 2 + id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 + documentID INT UNSIGNED NOT NULL, 4 + ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT} 5 + ) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
+3
src/__phutil_library_map__.php
··· 4694 4694 'PhrictionDocumentContentTransaction' => 'applications/phriction/xaction/PhrictionDocumentContentTransaction.php', 4695 4695 'PhrictionDocumentController' => 'applications/phriction/controller/PhrictionDocumentController.php', 4696 4696 'PhrictionDocumentDeleteTransaction' => 'applications/phriction/xaction/PhrictionDocumentDeleteTransaction.php', 4697 + 'PhrictionDocumentFerretEngine' => 'applications/phriction/search/PhrictionDocumentFerretEngine.php', 4697 4698 'PhrictionDocumentFulltextEngine' => 'applications/phriction/search/PhrictionDocumentFulltextEngine.php', 4698 4699 'PhrictionDocumentHeraldAdapter' => 'applications/phriction/herald/PhrictionDocumentHeraldAdapter.php', 4699 4700 'PhrictionDocumentHeraldField' => 'applications/phriction/herald/PhrictionDocumentHeraldField.php', ··· 10420 10421 'PhabricatorTokenReceiverInterface', 10421 10422 'PhabricatorDestructibleInterface', 10422 10423 'PhabricatorFulltextInterface', 10424 + 'PhabricatorFerretInterface', 10423 10425 'PhabricatorProjectInterface', 10424 10426 'PhabricatorApplicationTransactionInterface', 10425 10427 ), ··· 10428 10430 'PhrictionDocumentContentTransaction' => 'PhrictionDocumentTransactionType', 10429 10431 'PhrictionDocumentController' => 'PhrictionController', 10430 10432 'PhrictionDocumentDeleteTransaction' => 'PhrictionDocumentTransactionType', 10433 + 'PhrictionDocumentFerretEngine' => 'PhabricatorFerretEngine', 10431 10434 'PhrictionDocumentFulltextEngine' => 'PhabricatorFulltextEngine', 10432 10435 'PhrictionDocumentHeraldAdapter' => 'HeraldAdapter', 10433 10436 'PhrictionDocumentHeraldField' => 'HeraldField',
+18
src/applications/phriction/search/PhrictionDocumentFerretEngine.php
··· 1 + <?php 2 + 3 + final class PhrictionDocumentFerretEngine 4 + extends PhabricatorFerretEngine { 5 + 6 + public function getApplicationName() { 7 + return 'phriction'; 8 + } 9 + 10 + public function getScopeName() { 11 + return 'document'; 12 + } 13 + 14 + public function newSearchEngine() { 15 + return new PhrictionSearchEngine(); 16 + } 17 + 18 + }
+9
src/applications/phriction/storage/PhrictionDocument.php
··· 8 8 PhabricatorTokenReceiverInterface, 9 9 PhabricatorDestructibleInterface, 10 10 PhabricatorFulltextInterface, 11 + PhabricatorFerretInterface, 11 12 PhabricatorProjectInterface, 12 13 PhabricatorApplicationTransactionInterface { 13 14 ··· 253 254 254 255 public function newFulltextEngine() { 255 256 return new PhrictionDocumentFulltextEngine(); 257 + } 258 + 259 + 260 + /* -( PhabricatorFerretInterface )----------------------------------------- */ 261 + 262 + 263 + public function newFerretEngine() { 264 + return new PhrictionDocumentFerretEngine(); 256 265 } 257 266 258 267 }