mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-30 01:10:58 +01:00
Index "Closed" and "Unowned" relationships explicitly
Summary: Ref T4365. Two diffs from now, I'm changing the UI a bit to let you search for closed and unowned documents more explcitly. To support this in ElasticSearch and more easily in MySQL search, make these explicit, positive relationships. Test Plan: `bin/search index --all` Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T4365 Differential Revision: https://secure.phabricator.com/D8122
This commit is contained in:
parent
a48128d36f
commit
e7d671c8d3
5 changed files with 47 additions and 38 deletions
|
@ -44,13 +44,13 @@ final class DifferentialSearchIndexer
|
|||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
$rev->getDateCreated());
|
||||
|
||||
if (!$rev->isClosed()) {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||
$rev->getPHID(),
|
||||
DifferentialPHIDTypeRevision::TYPECONST,
|
||||
time());
|
||||
}
|
||||
$doc->addRelationship(
|
||||
$rev->isClosed()
|
||||
? PhabricatorSearchRelationship::RELATIONSHIP_CLOSED
|
||||
: PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||
$rev->getPHID(),
|
||||
DifferentialPHIDTypeRevision::TYPECONST,
|
||||
time());
|
||||
|
||||
$comments = id(new DifferentialCommentQuery())
|
||||
->withRevisionIDs(array($rev->getID()))
|
||||
|
@ -74,10 +74,19 @@ final class DifferentialSearchIndexer
|
|||
// If a revision needs review, the owners are the reviewers. Otherwise, the
|
||||
// owner is the author (e.g., accepted, rejected, closed).
|
||||
if ($rev->getStatus() == ArcanistDifferentialRevisionStatus::NEEDS_REVIEW) {
|
||||
foreach ($rev->getReviewers() as $phid) {
|
||||
$reviewers = $rev->getReviewers();
|
||||
if ($reviewers) {
|
||||
foreach ($reviewers as $phid) {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OWNER,
|
||||
$phid,
|
||||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
$rev->getDateModified()); // Bogus timestamp.
|
||||
}
|
||||
} else {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OWNER,
|
||||
$phid,
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_UNOWNED,
|
||||
$rev->getPHID(),
|
||||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
$rev->getDateModified()); // Bogus timestamp.
|
||||
}
|
||||
|
@ -85,7 +94,7 @@ final class DifferentialSearchIndexer
|
|||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OWNER,
|
||||
$rev->getAuthorPHID(),
|
||||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
PhabricatorPHIDConstants::PHID_TYPE_VOID,
|
||||
$rev->getDateCreated());
|
||||
}
|
||||
|
||||
|
|
|
@ -30,13 +30,13 @@ final class ManiphestSearchIndexer
|
|||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
$task->getDateCreated());
|
||||
|
||||
if ($task->getStatus() == ManiphestTaskStatus::STATUS_OPEN) {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||
$task->getPHID(),
|
||||
ManiphestPHIDTypeTask::TYPECONST,
|
||||
time());
|
||||
}
|
||||
$doc->addRelationship(
|
||||
($task->getStatus() == ManiphestTaskStatus::STATUS_OPEN)
|
||||
? PhabricatorSearchRelationship::RELATIONSHIP_OPEN
|
||||
: PhabricatorSearchRelationship::RELATIONSHIP_CLOSED,
|
||||
$task->getPHID(),
|
||||
ManiphestPHIDTypeTask::TYPECONST,
|
||||
time());
|
||||
|
||||
$this->indexTransactions(
|
||||
$doc,
|
||||
|
@ -60,12 +60,10 @@ final class ManiphestSearchIndexer
|
|||
time());
|
||||
} else {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OWNER,
|
||||
ManiphestTaskOwner::OWNER_UP_FOR_GRABS,
|
||||
PhabricatorPHIDConstants::PHID_TYPE_MAGIC,
|
||||
$owner
|
||||
? $owner->getDateCreated()
|
||||
: $task->getDateCreated());
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_UNOWNED,
|
||||
$task->getPHID(),
|
||||
PhabricatorPHIDConstants::PHID_TYPE_VOID,
|
||||
$task->getDateCreated());
|
||||
}
|
||||
|
||||
// We need to load handles here since non-users may subscribe (mailing
|
||||
|
|
|
@ -20,13 +20,13 @@ final class PhabricatorUserSearchIndexer
|
|||
// TODO: Index the blurbs from their profile or something? Probably not
|
||||
// actually useful...
|
||||
|
||||
if ($user->isUserActivated()) {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||
$user->getPHID(),
|
||||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
time());
|
||||
}
|
||||
$doc->addRelationship(
|
||||
$user->isUserActivated()
|
||||
? PhabricatorSearchRelationship::RELATIONSHIP_OPEN
|
||||
: PhabricatorSearchRelationship::RELATIONSHIP_CLOSED,
|
||||
$user->getPHID(),
|
||||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
time());
|
||||
|
||||
return $doc;
|
||||
}
|
||||
|
|
|
@ -37,13 +37,13 @@ final class PhrictionSearchIndexer
|
|||
PhabricatorPeoplePHIDTypeUser::TYPECONST,
|
||||
$content->getDateCreated());
|
||||
|
||||
if ($document->getStatus() == PhrictionDocumentStatus::STATUS_EXISTS) {
|
||||
$doc->addRelationship(
|
||||
PhabricatorSearchRelationship::RELATIONSHIP_OPEN,
|
||||
$document->getPHID(),
|
||||
PhrictionPHIDTypeDocument::TYPECONST,
|
||||
time());
|
||||
}
|
||||
$doc->addRelationship(
|
||||
($document->getStatus() == PhrictionDocumentStatus::STATUS_EXISTS)
|
||||
? PhabricatorSearchRelationship::RELATIONSHIP_OPEN
|
||||
: PhabricatorSearchRelationship::RELATIONSHIP_CLOSED,
|
||||
$document->getPHID(),
|
||||
PhrictionPHIDTypeDocument::TYPECONST,
|
||||
time());
|
||||
|
||||
return $doc;
|
||||
}
|
||||
|
|
|
@ -14,5 +14,7 @@ final class PhabricatorSearchRelationship {
|
|||
const RELATIONSHIP_REPOSITORY = 'repo';
|
||||
|
||||
const RELATIONSHIP_OPEN = 'open';
|
||||
const RELATIONSHIP_CLOSED = 'clos';
|
||||
const RELATIONSHIP_UNOWNED = 'unow';
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue