Page MenuHomePhabricator

Use the Ferret engine fulltext document table to drive auxiliary fulltext constraints
ClosedPublic

Authored by epriestley on Sep 7 2017, 3:49 PM.
Tags
None
Referenced Files
F15450178: D18550.id44586.diff
Fri, Mar 28, 2:23 PM
F15441386: D18550.diff
Wed, Mar 26, 5:56 PM
F15431871: D18550.diff
Mon, Mar 24, 3:02 PM
F15414712: D18550.diff
Thu, Mar 20, 2:04 AM
F15401899: D18550.id44586.diff
Mon, Mar 17, 7:41 PM
F15400152: D18550.id44557.diff
Mon, Mar 17, 10:01 AM
F15379124: D18550.diff
Thu, Mar 13, 6:50 PM
F15377284: D18550.diff
Thu, Mar 13, 8:32 AM
Subscribers
None

Details

Summary

Ref T12819. I started trying to get individual engines to drive these constraints (e.g., ManiphestTaskQuery can do most of the work) but this is a big pain, especially since most engines don't support "any owner" or "no owner", and not everything has an owner, and so on and so on. Going down this path would have meant a huge pile of stub functions everywhere, I think.

Instead, drive these through the main engine using the fulltext document table, which already has everything we need to apply these constraints in a uniform way.

Also tweak some parts of query construction and result ordering.

Test Plan

Searched for documents by author, owner, unowned, any owner, tags, subscribers, fulltext in global search. Got sensible results without any application-specific code.

Diff Detail

Repository
rP Phabricator
Branch
ferret4
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 18340
Build 24686: Run Core Tests
Build 24685: arc lint + arc unit