1. You can leverage lucene index of property type for this, like [/jcr:content/<property-name>]="Test".
select p.* from [cq:Page] As p where isdescendantnode(p, '/content/we-retail')
AND p.[/jcr:content/jcr:title]="test"
2. To get checkboxes - you need to set the correct resource type in the JCR path of the touch UI dialog path. See the different fields in this article - we have tabs and each tab has different fields.
Adobe Experience Manager Help | Creating an AEM 6.2 HTML Template Language tab movie component
To get a checkbox into a dialog - the resource type is Checkbox — Granite UI 1.0 documentation.
3. This would need some customization, for the JCR-based implementation, which maps Tags onto JCR Nodes , you can directly use Sling's adaptTo mechanism if you have the resource (e.g. such as /content/cq:tags/default/my/tag
Tag tag = resource.adaptTo(Tag.class);
While a tag may only be converted *from *a resource (not a node), a tag can be converted *to *both a node and a resource :
Node node = tag.adaptTo(Node.class);
Resource node = tag.adaptTo(Resource.class);
Searching for Tags:
// Searching for the Resource objects that are tagged with the tag object:
Iterator<Resource> it = tag.find();
// Retrieving the usage count of the tag object:
long count = tag.getCount();
// Searching for the Resource objects that are tagged with the tagID String:
RangeIterator<Resource> it = tagManager.find(tagID);