@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
at upstream/main 34 lines 762 B view raw
1<?php 2 3final class PhabricatorNgramsIndexEngineExtension 4 extends PhabricatorIndexEngineExtension { 5 6 const EXTENSIONKEY = 'ngrams'; 7 8 public function getExtensionName() { 9 return pht('Ngrams Engine'); 10 } 11 12 public function getIndexVersion($object) { 13 $ngrams = $object->newNgrams(); 14 $map = mpull($ngrams, 'getValue', 'getNgramKey'); 15 ksort($map); 16 $serialized = serialize($map); 17 18 return PhabricatorHash::digestForIndex($serialized); 19 } 20 21 public function shouldIndexObject($object) { 22 return ($object instanceof PhabricatorNgramsInterface); 23 } 24 25 public function indexObject( 26 PhabricatorIndexEngine $engine, 27 $object) { 28 29 foreach ($object->newNgrams() as $ngram) { 30 $ngram->writeNgram($object->getID()); 31 } 32 } 33 34}