mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 14:00:56 +01:00
Remove "Contains Words" constraint from Maniphest
Summary: Ref T12819. Obsoleted by the Ferret engine, which is unprototyping shortly. This breaks compatibility in two ways: - `maniphest.query` no longer supports "fullText" (now throws an explicit exception). - Existing saved searches with a "Contains Words" constraint will no longer have that constraint. It seems unlikely (?) that either of these are seeing too much use, and they should be easy to fix. I'll note them in the changelog. Test Plan: Viewed Maniphest, no more "Contains Words" field. Called `maniphest.query` with "fullText", got explicit exception. Reviewers: chad Reviewed By: chad Maniphest Tasks: T12819 Differential Revision: https://secure.phabricator.com/D18586
This commit is contained in:
parent
d15fb20fe6
commit
495ab7363b
3 changed files with 4 additions and 47 deletions
|
@ -102,7 +102,10 @@ final class ManiphestQueryConduitAPIMethod extends ManiphestConduitAPIMethod {
|
|||
|
||||
$full_text = $request->getValue('fullText');
|
||||
if ($full_text) {
|
||||
$query->withFullTextSearch($full_text);
|
||||
throw new Exception(
|
||||
pht(
|
||||
'Parameter "fullText" is no longer supported. Use method '.
|
||||
'"maniphest.search" with the "query" constraint instead.'));
|
||||
}
|
||||
|
||||
$status = $request->getValue('status');
|
||||
|
|
|
@ -24,8 +24,6 @@ final class ManiphestTaskQuery extends PhabricatorCursorPagedPolicyAwareQuery {
|
|||
private $subtaskIDs;
|
||||
private $subtypes;
|
||||
|
||||
private $fullTextSearch = '';
|
||||
|
||||
private $status = 'status-any';
|
||||
const STATUS_ANY = 'status-any';
|
||||
const STATUS_OPEN = 'status-open';
|
||||
|
@ -115,11 +113,6 @@ final class ManiphestTaskQuery extends PhabricatorCursorPagedPolicyAwareQuery {
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function withFullTextSearch($fulltext_search) {
|
||||
$this->fullTextSearch = $fulltext_search;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setGroupBy($group) {
|
||||
$this->groupBy = $group;
|
||||
|
||||
|
@ -329,7 +322,6 @@ final class ManiphestTaskQuery extends PhabricatorCursorPagedPolicyAwareQuery {
|
|||
|
||||
$where[] = $this->buildStatusWhereClause($conn);
|
||||
$where[] = $this->buildOwnerWhereClause($conn);
|
||||
$where[] = $this->buildFullTextWhereClause($conn);
|
||||
|
||||
if ($this->taskIDs !== null) {
|
||||
$where[] = qsprintf(
|
||||
|
@ -481,36 +473,6 @@ final class ManiphestTaskQuery extends PhabricatorCursorPagedPolicyAwareQuery {
|
|||
return '('.implode(') OR (', $subclause).')';
|
||||
}
|
||||
|
||||
private function buildFullTextWhereClause(AphrontDatabaseConnection $conn) {
|
||||
if (!strlen($this->fullTextSearch)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// In doing a fulltext search, we first find all the PHIDs that match the
|
||||
// fulltext search, and then use that to limit the rest of the search
|
||||
$fulltext_query = id(new PhabricatorSavedQuery())
|
||||
->setEngineClassName('PhabricatorSearchApplicationSearchEngine')
|
||||
->setParameter('query', $this->fullTextSearch);
|
||||
|
||||
// NOTE: Setting this to something larger than 10,000 will raise errors in
|
||||
// Elasticsearch, and billions of results won't fit in memory anyway.
|
||||
$fulltext_query->setParameter('limit', 10000);
|
||||
$fulltext_query->setParameter('types',
|
||||
array(ManiphestTaskPHIDType::TYPECONST));
|
||||
|
||||
$fulltext_results = PhabricatorSearchService::executeSearch(
|
||||
$fulltext_query);
|
||||
|
||||
if (empty($fulltext_results)) {
|
||||
$fulltext_results = array(null);
|
||||
}
|
||||
|
||||
return qsprintf(
|
||||
$conn,
|
||||
'task.phid IN (%Ls)',
|
||||
$fulltext_results);
|
||||
}
|
||||
|
||||
protected function buildJoinClauseParts(AphrontDatabaseConnection $conn) {
|
||||
$open_statuses = ManiphestTaskStatus::getOpenStatusConstants();
|
||||
$edge_table = PhabricatorEdgeConfig::TABLE_NAME_EDGE;
|
||||
|
|
|
@ -86,9 +86,6 @@ final class ManiphestTaskSearchEngine
|
|||
pht('Search for tasks with given subtypes.'))
|
||||
->setDatasource(new ManiphestTaskSubtypeDatasource())
|
||||
->setIsHidden($hide_subtypes),
|
||||
id(new PhabricatorSearchTextField())
|
||||
->setLabel(pht('Contains Words'))
|
||||
->setKey('fulltext'),
|
||||
id(new PhabricatorSearchThreeStateField())
|
||||
->setLabel(pht('Open Parents'))
|
||||
->setKey('hasParents')
|
||||
|
@ -144,7 +141,6 @@ final class ManiphestTaskSearchEngine
|
|||
'statuses',
|
||||
'priorities',
|
||||
'subtypes',
|
||||
'fulltext',
|
||||
'hasParents',
|
||||
'hasSubtasks',
|
||||
'parentIDs',
|
||||
|
@ -220,10 +216,6 @@ final class ManiphestTaskSearchEngine
|
|||
$query->withOpenSubtasks($map['hasSubtasks']);
|
||||
}
|
||||
|
||||
if (strlen($map['fulltext'])) {
|
||||
$query->withFullTextSearch($map['fulltext']);
|
||||
}
|
||||
|
||||
if ($map['parentIDs']) {
|
||||
$query->withParentTaskIDs($map['parentIDs']);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue