1
0
Fork 0
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:
epriestley 2014-02-03 12:51:18 -08:00
parent a48128d36f
commit e7d671c8d3
5 changed files with 47 additions and 38 deletions

View file

@ -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());
}

View file

@ -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

View file

@ -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;
}

View file

@ -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;
}

View file

@ -14,5 +14,7 @@ final class PhabricatorSearchRelationship {
const RELATIONSHIP_REPOSITORY = 'repo';
const RELATIONSHIP_OPEN = 'open';
const RELATIONSHIP_CLOSED = 'clos';
const RELATIONSHIP_UNOWNED = 'unow';
}