var doTermSearch = function (ctx, facetField, paging, authRequired) {
        var terms = [];
        var results;
        var selectedTag;
        var map = new HashMap();
        var mediaType;
        var app = require('rxt').app;
        var asset = require('rxt').asset;
        var searchPage = '/pages/top-assets';
        var rxtManager = ctx.rxtManager;
        if (ctx.assetType) {
            mediaType = rxtManager.getMediaType(ctx.assetType);
            searchPage =  '/assets/'+ctx.assetType+'/list';
        } else {
            var availableTypes = app.getUIActivatedAssets(ctx.tenantId);
            mediaType = '(';
            for (var index in availableTypes) {
                if (availableTypes.hasOwnProperty(index)) {
                    if (index == 0) {
                        mediaType = mediaType + rxtManager.getMediaType(availableTypes[index]);
                    } else {
                        mediaType = mediaType + ' OR ' + rxtManager.getMediaType(availableTypes[index]);
                    }
                }
            }
            mediaType = mediaType + ')';
        }
        log.debug("term search query criteria:facetField " + facetField + " mediaType " + mediaType);

        var q = request.getParameter("q");
        if (q) {
            var options = parse("{" + q + "}");
            /*if (facetField == "tags") {
                map = buildQueryMapTags(ctx, options);
            } else {
                map = buildQueryMap(ctx, options);
            }*/

            if (options.tags) {
                selectedTag = options.tags;
            }
        }

        if (facetField) {
            try {
                buildPaginationContext(paging);
                //results = GovernanceUtils.getTermDataList(map, facetField, mediaType, authRequired);
                var am = getAssetManager(ctx);
                q = q  ? q : (q='');
                q = parse('{' + q + '}' );
                var query = asset.buildQuery(ctx.assetType, rxtManager, app, q);
                results = GovernanceUtils.getTermDataList(query, facetField, mediaType, am.registry.registry);
                var iterator = results.iterator();
                while (iterator.hasNext()) {
                    var current = iterator.next();
                    var term = {};
                    term.value = current.term;
                    term.frequency = current.frequency;
                    term.searchPage = searchPage;
                    if(selectedTag && selectedTag == current.term){
                        term.selected=true;
                    }
                    else{
                        term.selected=false;
                    }
                    terms.push(term);
                }
            } finally {
                destroyPaginationContext();
            }
        }
        return terms;
    };