@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
···11+CREATE TABLE {$NAMESPACE}_phriction.phriction_document_fdocument (
22+ id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
33+ objectPHID VARBINARY(64) NOT NULL,
44+ isClosed BOOL NOT NULL,
55+ authorPHID VARBINARY(64),
66+ ownerPHID VARBINARY(64),
77+ epochCreated INT UNSIGNED NOT NULL,
88+ epochModified INT UNSIGNED NOT NULL
99+) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
···11+CREATE TABLE {$NAMESPACE}_phriction.phriction_document_fngrams (
22+ id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
33+ documentID INT UNSIGNED NOT NULL,
44+ ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT}
55+) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
···11+<?php
22+33+final class PhrictionDocumentFerretEngine
44+ extends PhabricatorFerretEngine {
55+66+ public function getApplicationName() {
77+ return 'phriction';
88+ }
99+1010+ public function getScopeName() {
1111+ return 'document';
1212+ }
1313+1414+ public function newSearchEngine() {
1515+ return new PhrictionSearchEngine();
1616+ }
1717+1818+}