diff --git a/resources/sql/autopatches/20170907.ferret.10.owners.doc.sql b/resources/sql/autopatches/20170907.ferret.10.owners.doc.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20170907.ferret.10.owners.doc.sql
@@ -0,0 +1,9 @@
+CREATE TABLE {$NAMESPACE}_owners.owners_package_fdocument (
+  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+  objectPHID VARBINARY(64) NOT NULL,
+  isClosed BOOL NOT NULL,
+  authorPHID VARBINARY(64),
+  ownerPHID VARBINARY(64),
+  epochCreated INT UNSIGNED NOT NULL,
+  epochModified INT UNSIGNED NOT NULL
+) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
diff --git a/resources/sql/autopatches/20170907.ferret.11.owners.field.sql b/resources/sql/autopatches/20170907.ferret.11.owners.field.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20170907.ferret.11.owners.field.sql
@@ -0,0 +1,8 @@
+CREATE TABLE {$NAMESPACE}_owners.owners_package_ffield (
+  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+  documentID INT UNSIGNED NOT NULL,
+  fieldKey VARCHAR(4) NOT NULL COLLATE {$COLLATE_TEXT},
+  rawCorpus LONGTEXT NOT NULL COLLATE {$COLLATE_SORT},
+  termCorpus LONGTEXT NOT NULL COLLATE {$COLLATE_SORT},
+  normalCorpus LONGTEXT NOT NULL COLLATE {$COLLATE_SORT}
+) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
diff --git a/resources/sql/autopatches/20170907.ferret.12.owners.ngrams.sql b/resources/sql/autopatches/20170907.ferret.12.owners.ngrams.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20170907.ferret.12.owners.ngrams.sql
@@ -0,0 +1,5 @@
+CREATE TABLE {$NAMESPACE}_owners.owners_package_fngrams (
+  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+  documentID INT UNSIGNED NOT NULL,
+  ngram CHAR(3) NOT NULL COLLATE {$COLLATE_TEXT}
+) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -3317,7 +3317,8 @@
     'PhabricatorOwnersPackageDescriptionTransaction' => 'applications/owners/xaction/PhabricatorOwnersPackageDescriptionTransaction.php',
     'PhabricatorOwnersPackageDominionTransaction' => 'applications/owners/xaction/PhabricatorOwnersPackageDominionTransaction.php',
     'PhabricatorOwnersPackageEditEngine' => 'applications/owners/editor/PhabricatorOwnersPackageEditEngine.php',
-    'PhabricatorOwnersPackageFulltextEngine' => 'applications/owners/query/PhabricatorOwnersPackageFulltextEngine.php',
+    'PhabricatorOwnersPackageFerretEngine' => 'applications/owners/search/PhabricatorOwnersPackageFerretEngine.php',
+    'PhabricatorOwnersPackageFulltextEngine' => 'applications/owners/search/PhabricatorOwnersPackageFulltextEngine.php',
     'PhabricatorOwnersPackageFunctionDatasource' => 'applications/owners/typeahead/PhabricatorOwnersPackageFunctionDatasource.php',
     'PhabricatorOwnersPackageNameNgrams' => 'applications/owners/storage/PhabricatorOwnersPackageNameNgrams.php',
     'PhabricatorOwnersPackageNameTransaction' => 'applications/owners/xaction/PhabricatorOwnersPackageNameTransaction.php',
@@ -8714,6 +8715,7 @@
       'PhabricatorDestructibleInterface',
       'PhabricatorConduitResultInterface',
       'PhabricatorFulltextInterface',
+      'PhabricatorFerretInterface',
       'PhabricatorNgramsInterface',
     ),
     'PhabricatorOwnersPackageAuditingTransaction' => 'PhabricatorOwnersPackageTransactionType',
@@ -8723,6 +8725,7 @@
     'PhabricatorOwnersPackageDescriptionTransaction' => 'PhabricatorOwnersPackageTransactionType',
     'PhabricatorOwnersPackageDominionTransaction' => 'PhabricatorOwnersPackageTransactionType',
     'PhabricatorOwnersPackageEditEngine' => 'PhabricatorEditEngine',
+    'PhabricatorOwnersPackageFerretEngine' => 'PhabricatorFerretEngine',
     'PhabricatorOwnersPackageFulltextEngine' => 'PhabricatorFulltextEngine',
     'PhabricatorOwnersPackageFunctionDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
     'PhabricatorOwnersPackageNameNgrams' => 'PhabricatorSearchNgrams',
diff --git a/src/applications/owners/search/PhabricatorOwnersPackageFerretEngine.php b/src/applications/owners/search/PhabricatorOwnersPackageFerretEngine.php
new file mode 100644
--- /dev/null
+++ b/src/applications/owners/search/PhabricatorOwnersPackageFerretEngine.php
@@ -0,0 +1,18 @@
+<?php
+
+final class PhabricatorOwnersPackageFerretEngine
+  extends PhabricatorFerretEngine {
+
+  public function getApplicationName() {
+    return 'owners';
+  }
+
+  public function getScopeName() {
+    return 'package';
+  }
+
+  public function newSearchEngine() {
+    return new PhabricatorOwnersPackageSearchEngine();
+  }
+
+}
diff --git a/src/applications/owners/query/PhabricatorOwnersPackageFulltextEngine.php b/src/applications/owners/search/PhabricatorOwnersPackageFulltextEngine.php
rename from src/applications/owners/query/PhabricatorOwnersPackageFulltextEngine.php
rename to src/applications/owners/search/PhabricatorOwnersPackageFulltextEngine.php
diff --git a/src/applications/owners/storage/PhabricatorOwnersPackage.php b/src/applications/owners/storage/PhabricatorOwnersPackage.php
--- a/src/applications/owners/storage/PhabricatorOwnersPackage.php
+++ b/src/applications/owners/storage/PhabricatorOwnersPackage.php
@@ -9,6 +9,7 @@
     PhabricatorDestructibleInterface,
     PhabricatorConduitResultInterface,
     PhabricatorFulltextInterface,
+    PhabricatorFerretInterface,
     PhabricatorNgramsInterface {
 
   protected $name;
@@ -615,6 +616,14 @@
   }
 
 
+/* -(  PhabricatorFerretInterface  )----------------------------------------- */
+
+
+  public function newFerretEngine() {
+    return new PhabricatorOwnersPackageFerretEngine();
+  }
+
+
 /* -(  PhabricatorNgramsInterface  )----------------------------------------- */