diff --git a/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
@@ -38,7 +38,8 @@
   }
 
   protected function newRelationshipSource() {
-    return new ManiphestTaskRelationshipSource();
+    return id(new ManiphestTaskRelationshipSource())
+      ->setSelectedFilter('open');
   }
 
   public function getRequiredRelationshipCapabilities() {
diff --git a/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php
@@ -38,7 +38,8 @@
   }
 
   protected function newRelationshipSource() {
-    return new ManiphestTaskRelationshipSource();
+    return id(new ManiphestTaskRelationshipSource())
+      ->setSelectedFilter('open');
   }
 
 }
diff --git a/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php
@@ -38,7 +38,8 @@
   }
 
   protected function newRelationshipSource() {
-    return new ManiphestTaskRelationshipSource();
+    return id(new ManiphestTaskRelationshipSource())
+      ->setSelectedFilter('open');
   }
 
 }
diff --git a/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
@@ -38,7 +38,8 @@
   }
 
   protected function newRelationshipSource() {
-    return new ManiphestTaskRelationshipSource();
+    return id(new ManiphestTaskRelationshipSource())
+      ->setSelectedFilter('open');
   }
 
   public function getRequiredRelationshipCapabilities() {
diff --git a/src/applications/search/controller/PhabricatorSearchRelationshipController.php b/src/applications/search/controller/PhabricatorSearchRelationshipController.php
--- a/src/applications/search/controller/PhabricatorSearchRelationshipController.php
+++ b/src/applications/search/controller/PhabricatorSearchRelationshipController.php
@@ -150,14 +150,6 @@
     $handles = iterator_to_array($handles);
     $handles = array_select_keys($handles, $dst_phids);
 
-    // TODO: These are hard-coded for now.
-    $filters = array(
-      'assigned' => pht('Assigned to Me'),
-      'created' => pht('Created By Me'),
-      'open' => pht('All Open Objects'),
-      'all' => pht('All Objects'),
-    );
-
     $dialog_title = $relationship->getDialogTitleText();
     $dialog_header = $relationship->getDialogHeaderText();
     $dialog_button = $relationship->getDialogButtonText();
@@ -165,12 +157,17 @@
 
     $source_uri = $relationship->getSourceURI($object);
 
+    $source = $relationship->newSource();
+
+    $filters = $source->getFilters();
+    $selected_filter = $source->getSelectedFilter();
+
     return id(new PhabricatorObjectSelectorDialog())
       ->setUser($viewer)
       ->setInitialPHIDs($initial_phids)
       ->setHandles($handles)
       ->setFilters($filters)
-      ->setSelectedFilter('created')
+      ->setSelectedFilter($selected_filter)
       ->setExcluded($src_phid)
       ->setCancelURI($done_uri)
       ->setSearchURI($source_uri)
diff --git a/src/applications/search/relationship/DiffusionCommitRelationshipSource.php b/src/applications/search/relationship/DiffusionCommitRelationshipSource.php
--- a/src/applications/search/relationship/DiffusionCommitRelationshipSource.php
+++ b/src/applications/search/relationship/DiffusionCommitRelationshipSource.php
@@ -17,4 +17,10 @@
     );
   }
 
+  public function getFilters() {
+    $filters = parent::getFilters();
+    unset($filters['assigned']);
+    return $filters;
+  }
+
 }
diff --git a/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php b/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php
--- a/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php
+++ b/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php
@@ -3,6 +3,7 @@
 abstract class PhabricatorObjectRelationshipSource extends Phobject {
 
   private $viewer;
+  private $selectedFilter;
 
   final public function setViewer(PhabricatorUser $viewer) {
     $this->viewer = $viewer;
@@ -16,4 +17,32 @@
   abstract public function isEnabledForObject($object);
   abstract public function getResultPHIDTypes();
 
+  protected function getDefaultFilter() {
+    return 'created';
+  }
+
+  final public function setSelectedFilter($selected_filter) {
+    $this->selectedFilter = $selected_filter;
+    return $this;
+  }
+
+  final public function getSelectedFilter() {
+    if ($this->selectedFilter === null) {
+      return $this->getDefaultFilter();
+    }
+
+    return $this->selectedFilter;
+  }
+
+  public function getFilters() {
+    // TODO: These are hard-coded for now, and all of this will probably be
+    // rewritten when we move to ApplicationSearch.
+    return array(
+      'assigned' => pht('Assigned to Me'),
+      'created' => pht('Created By Me'),
+      'open' => pht('All Open Objects'),
+      'all' => pht('All Objects'),
+    );
+  }
+
 }
diff --git a/src/applications/search/relationship/PholioMockRelationshipSource.php b/src/applications/search/relationship/PholioMockRelationshipSource.php
--- a/src/applications/search/relationship/PholioMockRelationshipSource.php
+++ b/src/applications/search/relationship/PholioMockRelationshipSource.php
@@ -17,4 +17,10 @@
     );
   }
 
+  public function getFilters() {
+    $filters = parent::getFilters();
+    unset($filters['assigned']);
+    return $filters;
+  }
+
 }
diff --git a/src/applications/search/storage/document/PhabricatorSearchDocument.php b/src/applications/search/storage/document/PhabricatorSearchDocument.php
--- a/src/applications/search/storage/document/PhabricatorSearchDocument.php
+++ b/src/applications/search/storage/document/PhabricatorSearchDocument.php
@@ -26,6 +26,9 @@
         'documentCreated' => array(
           'columns' => array('documentCreated'),
         ),
+        'key_type' => array(
+          'columns' => array('documentType', 'documentCreated'),
+        ),
       ),
     ) + parent::getConfiguration();
   }